---
title: "List Child Documents"
method: GET
path: "/documents/{child_id}"
tags: ["documents"]
---

# List Child Documents

`GET /documents/{child_id}`

## Request

- Base URL: `https://api.projectindi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.projectindi.com/documents/{child_id}`
- Auth: none declared

List documents and artefacts for a child.

Authentication: JWT required
RLS: User must own the child or have clinician access

Query params:
    source: Filter by source (all, upload, email, chat, artefacts)
    content_type: Filter by content type (all, documents, media).
                  media = images + videos; documents = everything else.
    include_processing: Include documents with status='processing' (default: false)
                        Staged attachments have status='processing' until chat succeeds.
    include_hidden: Include hidden documents (default: false)
                    Hidden documents are kept out of Records (email artefacts,
                    attachments of a deleted email, email documents whose
                    ingestion failed for good).
    limit: Number of documents per page (1-100, default: 20)
    offset: Number of documents to skip (default: 0)
    search: Search query to filter by title, filename, summary or description

## Path parameters

- `child_id` string, required

## Query parameters

- `source` 'all' | 'upload' | 'email' | 'chat', nullable
- `content_type` 'all' | 'documents' | 'media', nullable
- `include_processing` boolean
- `include_hidden` boolean
- `limit` integer
- `offset` integer
- `search` string, nullable

## Response `200`

Successful Response

- PaginatedDocumentResponse
  - `documents` DocumentResponse[], required
    - `id` string, required
    - `user_id` string, required
    - `child_id` string, required
    - `conversation_id` string, nullable
    - `file_name` string, required
    - `file_type` string, required
    - `file_url` string, required
    - `file_size` integer, nullable
    - `ai_title` string, nullable
    - `ai_description` string, nullable
    - `summary` string, nullable
    - `status` string, nullable
    - `failure_reason` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `source` string, nullable
    - `email_id` string, nullable
    - `match_snippet` string, nullable
    - `message_id` string, nullable
    - `attachment_index` integer, nullable
    - `duration_seconds` number, nullable
    - `is_duplicate` boolean
  - `total` integer, required
  - `has_more` boolean, required
  - `next_offset` integer, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles.md) - [All operations](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/llms.txt) - [OpenAPI document](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/revisions/25a7813e21fd?raw)
