---
title: "Read what was indexed"
description: "Retrieve the text of a resource exactly as assistants search it, in Markdown, with what could not be read. Long texts come in windows."
canonical: "https://lookio.app/docs/api/resources/get-resource-content"
updated: "2026-10-17"
---

# Read what was indexed

Requires `resources:read`.

Use this to check an import before you rely on it. The text holds up to 200,000 characters. For a long resource, read a window with `offset` and `limit` (in characters), and continue from `next_offset` until it is `null`.

`warnings` lists what reading could not use, such as pages without readable text.

```http
GET https://api.lookio.app/v1/resources/{resource_id}/content
```

## Authorizations

- `Authorization` (bearer, in header, required)

## Path parameters

- `resource_id` (`string`, required, pattern: `^res_[abcdefghjkmnpqrstuvwxyz23456789]{12}$`)

## Query parameters

- `offset` (`integer`, range: `≥ 0`): Where to start, in characters. Default 0. Pass `next_offset` from the previous response to read on.
- `limit` (`integer`, range: `1–200000`): How many characters to return, at most 200,000. Omit it to read everything from `offset`.

## Response

**200**: Read what was indexed

- `data` (`object`, required)
- `data.title` (`string`, required)
- `data.type` (`enum<string>`, required, one of: `text, file, url, site`)
- `data.file_name` (`string,null`, required)
- `data.page_count` (`integer | null`, required)
- `data.passages` (`integer | null`, required): How many passages the published version was cut into.
- `data.warnings` (`string[]`, required): What reading could not use, such as pages without readable text.
- `data.text` (`string`, required): The text as indexed, in Markdown, from `offset` for at most `limit` characters.
- `data.truncated` (`boolean`, required): True when the resource itself is longer than the 200,000 characters Lookio keeps readable. It says nothing about this window: for that, read `has_more` or `next_offset`.
- `data.has_more` (`boolean`, required): True when more text follows this window: continue at `next_offset`.
- `data.offset` (`integer`, required): Where `text` starts, in characters.
- `data.total_chars` (`integer`, required): The length of the readable text (at most 200,000).
- `data.next_offset` (`integer | null`, required): Where to continue, or null when `text` reaches the end.
- `request_id` (`string`, required)

```json
{
  "data": {
    "title": "<string>",
    "type": "text",
    "file_name": null,
    "page_count": 123,
    "passages": 123,
    "warnings": [
      "<string>"
    ],
    "text": "<string>",
    "truncated": true,
    "has_more": true,
    "offset": 123,
    "total_chars": 123,
    "next_offset": 123
  },
  "request_id": "<string>"
}
```

**400**: Possible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**401**: Possible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**403**: Possible codes: insufficient_scope, feature_not_available, admin_required, permission_denied

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**404**: Possible codes: resource_not_found

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**429**: Possible codes: rate_limited

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**500**: Possible codes: internal_error

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**503**: Possible codes: service_unavailable

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**Example request**

```bash
curl --request GET \
  --url 'https://api.lookio.app/v1/resources/<resource_id>/content' \
  --header 'Authorization: <api-key>'
```
