ThreadPage Integration API

The Integration API API from ThreadPage — 37 operation(s) for integration api.

GitHub OpenAPI

Operations 46

GET /api/integrations/v1/connection Describe the connection behind this token #
POST /api/integrations/v1/files/{file_id}/complete Complete a file upload #
POST /api/integrations/v1/files/{file_id}/parts Get more part URLs of a file upload #
GET /api/integrations/v1/folders List folders #
POST /api/integrations/v1/folders Create a folder #
PATCH /api/integrations/v1/folders/{folder_id} Rename a folder #
POST /api/integrations/v1/folders/{folder_id}/move Move a folder with everything in it #
POST /api/integrations/v1/folders/{folder_id}/restore Restore a folder #
POST /api/integrations/v1/folders/{folder_id}/trash Move a folder to Trash #
POST /api/integrations/v1/inbox/notes Add a note to the owner's Inbox #
GET /api/integrations/v1/notes/{note_id} Get a note with its full content #
PATCH /api/integrations/v1/notes/{note_id} Pin a note or mark it done #
PUT /api/integrations/v1/notes/{note_id}/content Replace a note's content #
GET /api/integrations/v1/notes/{note_id}/files/{file_id} Describe a file a note holds #
GET /api/integrations/v1/notes/{note_id}/files/{file_id}/preview Read the preview of a file a note holds #
GET /api/integrations/v1/notes/{note_id}/files/{file_id}/text Read the text of a text file or a PDF a note holds #
GET /api/integrations/v1/notes/{note_id}/images/{image_id} Read a preview of an image a note holds #
POST /api/integrations/v1/notes/{note_id}/move Move a note to another thread #
GET /api/integrations/v1/notes/{note_id}/reminder Read the person's reminder on this note #
PUT /api/integrations/v1/notes/{note_id}/reminder Set the person's reminder on this note #
DELETE /api/integrations/v1/notes/{note_id}/reminder Remove the person's reminder on this note #
POST /api/integrations/v1/notes/{note_id}/restore Restore a note #
POST /api/integrations/v1/notes/{note_id}/trash Move a note to Trash #
GET /api/integrations/v1/notes/{note_id}/versions List a note's earlier versions #
GET /api/integrations/v1/notes/{note_id}/versions/{version_id} Read one earlier version #
POST /api/integrations/v1/notes/{note_id}/versions/{version_id}/restore Make an earlier version current #
GET /api/integrations/v1/operations/{operation_id} Read the receipt of an earlier write #
GET /api/integrations/v1/search Search notes by text or thread title or description #
GET /api/integrations/v1/statuses List the workspace's statuses #
GET /api/integrations/v1/threads List threads this connection can see #
POST /api/integrations/v1/threads Create a thread #
GET /api/integrations/v1/threads/{thread_id} Get one thread #
PATCH /api/integrations/v1/threads/{thread_id} Rename a thread or change its description or status #
POST /api/integrations/v1/threads/{thread_id}/archive Archive a thread #
POST /api/integrations/v1/threads/{thread_id}/files Upload a file for a note in a thread #
POST /api/integrations/v1/threads/{thread_id}/images Upload an image for a note in a thread #
POST /api/integrations/v1/threads/{thread_id}/move Move a thread into a folder #
GET /api/integrations/v1/threads/{thread_id}/notes List notes in a thread, newest first #
POST /api/integrations/v1/threads/{thread_id}/notes Add a note to a thread #
GET /api/integrations/v1/threads/{thread_id}/reminder Read the person's reminder on this thread #
PUT /api/integrations/v1/threads/{thread_id}/reminder Set the person's reminder on this thread #
DELETE /api/integrations/v1/threads/{thread_id}/reminder Remove the person's reminder on this thread #
GET /api/integrations/v1/threads/{thread_id}/reminders List a thread's reminders #
POST /api/integrations/v1/threads/{thread_id}/restore Restore a thread #
POST /api/integrations/v1/threads/{thread_id}/trash Move a thread to Trash #
POST /api/integrations/v1/threads/{thread_id}/unarchive Unarchive a thread #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thread-page:thread-page-integration-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

thread-page-integration-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ThreadPage Integration Integration API
  version: 1.1.0
  description: 'Read, add, edit and organize notes in ThreadPage from your own scripts, servers and workflows.

    Every page of the developer reference has a Markdown twin; all of them in one file:

    https://thread.page/llms-full.txt. Start at https://thread.page/help/connections/custom.md.


    - **Authentication.** A custom connection''s token as `Authorization: Bearer tp_…`, from a server

    or a script: the API sends no CORS headers. Its level (Edit and organize, Read and add, Read

    only, Add only or Add to Inbox) offers the same here as through MCP; `x-threadpage-levels` and

    `x-threadpage-mcp-tool` on each operation say who may call it. A 401 is `invalid_token` (ask

    the owner for a new token) or `token_expired` (the owner renews the same token). The same

    token connects an MCP client to `/mcp` on every level but Edit and organize, which MCP takes

    only through OAuth (403 `oauth_required`). https://thread.page/help/connections/api.md

    - **Writes.** Every write takes an `Operation-Id` header: one UUID per logical write, the same

    on every retry. After a lost response, read `GET /operations/{operation_id}`. A content edit

    sends the `content_revision` and `context_receipt` of the read it is based on; 409

    `stale_block` or `reread_required` means read again. A shared thread or folder

    (`shared: true`) takes writes only where the owner allowed this connection (409

    `shared_place_write`). Nothing is ever deleted permanently.

    - **Errors** share one shape: `code`, `message`, `retryable`, `diagnostic_id` (also the

    `X-Request-ID` header) and `details`. A 429 or 503 carries `Retry-After`. MCP tools answer

    `{"status": "rejected", "code", "message", "details"}` in the tool result.

    `x-threadpage-errors` on each operation lists the codes it answers, and at the top level every

    code. https://thread.page/help/connections/errors.md

    - **Lists** return `next_cursor`; pass it back as `cursor` within an hour.

    - **Times** are UTC in RFC 3339 and end in `Z`.

    - **Events** (`webhooks` below) reach a signed webhook or a pull feed; a connection never hears

    its own writes. https://thread.page/help/connections/events.md

    - **Endpoint URLs** (`POST /in/{capability}`) turn a service''s JSON into notes in one thread.

    https://thread.page/help/connections/endpoints.md

    - **Requests**: claim the notes the owner addresses to this connection (its `@name`) and answer

    with a note; a request keeps the name it was sent to, so tell them apart by id.

    https://thread.page/help/connections/requests.md'
servers:
- url: https://thread.page
tags:


# --- truncated at 32 KB (393 KB total) ---
# Full source: https://artifacts.apis.io/thread-page/openapi/thread-page-integration-api-api-openapi.yml