---
title: 'The source file behind a row: download it, or open a PDF or image inline'
url: https://anyrow.ai/docs/api/rows/source
canonical_url: https://anyrow.ai/docs/api/rows/source
---

# The source file behind a row: download it, or open a PDF or image inline

`GET /v1/projects/{project_id}/tables/{table_id}/rows/{row_id}/source`

Authentication: `Authorization: ApiKey {your_api_key}`.

## Path parameters

- `project_id` (string, required)
- `table_id` (string, required)
- `row_id` (string, required)

## Query parameters

- `disposition` (string, optional): One of `attachment`, `inline`. Defaults to `attachment`.

## Returns

200 `application/octet-stream`.

## Errors

- 404: `not_found`, `row_not_found`, `row_source_not_found`, `table_not_found`

Errors every endpoint can return: [Errors](https://anyrow.ai/docs/api/errors.md).

## Request

```ts title="Node.js"
import { AnyrowSDK } from "@anyrow/sdk"

const anyrow = new AnyrowSDK({
  baseURL: "https://api.anyrow.ai",
  headers: { Authorization: `ApiKey ${process.env.ANYROW_API_KEY}` },
})

const { data, error } = await anyrow.row.source({
  params: {
    project_id: "{project_id}",
    table_id: "{table_id}",
    row_id: "{row_id}"
  },
})
```

```bash title="cURL"
curl 'https://api.anyrow.ai/v1/projects/{project_id}/tables/{table_id}/rows/{row_id}/source' \
  -H 'Authorization: ApiKey {your_api_key}'
```

```js title="JavaScript"
const response = await fetch("https://api.anyrow.ai/v1/projects/{project_id}/tables/{table_id}/rows/{row_id}/source", {
  headers: {
    Authorization: "ApiKey {your_api_key}",
  },
})
const data = await response.text()
```

```python title="Python"
import requests

response = requests.get(
    "https://api.anyrow.ai/v1/projects/{project_id}/tables/{table_id}/rows/{row_id}/source",
    headers={
        "Authorization": "ApiKey {your_api_key}",
    },
)
print(response.text)
```
