---
title: "List files"
method: GET
path: "/api/businesses/{business_id}/files"
tags: ["library"]
---

# List files

`GET /api/businesses/{business_id}/files`

## Request

- Base URL: `https://api.mymarky.ai`
- URL: `https://api.mymarky.ai/api/businesses/{business_id}/files`
- Auth: HTTP bearer

List markdown/text DOCUMENTS in a business's library.

These are text documents (created via `create_library_file`), NOT uploaded
images/videos — for media assets use `list_library` instead.

Errors:
    400 invalid_value: The business_id is not a valid UUID.
    401 authentication_required: API key or token is missing, invalid, or revoked.
    403 permission_denied: Your plan does not include API access, or this business is not in your org.
    404 resource_not_found: No business with that ID exists.
    429 rate_limit_exceeded: You sent too many requests this minute.

## Path parameters

- `business_id` string, required: A UUID identifier.

## Query parameters

- `folder_id` string, nullable: Filter by folder (null for root)
- `cursor` string, nullable: The `next` value from the previous page's response, passed back verbatim. Leave it out for the first page. When `next` is null you have every result.
- `limit` integer

## Headers

- `Marky-Version` '2026-04-08' | '2026-07-17' | '2026-08-02' | '2026-08-04' | '2026-08-06'

## Response `200`

Successful Response

- PageFileResponse
  - `items` FileResponse[], required: This page of results.
    - `id` string, required: File ID
    - `business_id` string, required: Business this file belongs to
    - `name` string, required: File name
    - `path` string, required: Full file path
    - `body_text` string, nullable: Markdown content
    - `parent_id` string, nullable: Parent folder ID
    - `media` MediaResponse[]: Attached media
      - `id` string, required: Media ID
      - `business_id` string, required: Business this media belongs to
      - `alt_text` string, nullable: Alt text description
      - `original_url` string, nullable: Media URL
      - `type` string, nullable: Media type: image, video, or audio
      - `width` integer, nullable: Width in pixels
      - `height` integer, nullable: Height in pixels
      - `source` string, nullable: Media origin (e.g. upload, unsplash)
      - `created_at` string, required: When the media was uploaded
    - `created_at` string, required: When the file was created
    - `updated_at` string, nullable: Last update time
  - `next` string, nullable: Opaque cursor for the next page; null when there are no more. Pass it back verbatim as ?cursor=. Do not construct or decode it.

## Other responses

- `400`: Bad request — the input was malformed or otherwise invalid.
- `401`: Authentication failed — the API key is missing or invalid.
- `403`: Forbidden — the key is valid but may not access this resource.
- `404`: Not found — no resource matches the id in the path.
- `422`: Validation error — one or more fields failed validation.
- `429`: Rate limited — retry after the window resets (see Retry-After).
- `500`: Server error — something failed on our side; retry or quote X-Request-Id.

---

[API](https://skmtc.dev/mymarky/apis/marky-public-api.md) · [All operations](https://skmtc.dev/mymarky/apis/marky-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mymarky/apis/marky-public-api/revisions/25aeacae455c?raw)
