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/honcho-dev:honcho-dev-documents-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: 3.2.0
info:
title: Honcho Documents API
summary: The Identity Layer for the Agentic World
description: Honcho is a platform for giving agents user-centric memory and social cognition
contact:
name: Plastic Labs
url: https://honcho.dev/
email: hello@plasticlabs.ai
version: 1.1.0
servers:
- url: http://localhost:8000
description: Local Development Server
- url: https://demo.honcho.dev
description: Demo Server
- url: https://api.honcho.dev
description: Production SaaS Platform
tags:
- name: Documents
paths:
/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/list:
post:
tags:
- Documents
summary: Get Documents
description: Get all of the Documents in a Collection
operationId: get_documents_v1_apps__app_id__users__user_id__collections__collection_id__documents_list_post
security:
- HTTPBearer: []
- {}
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: ID of the app
title: App Id
description: ID of the app
- name: user_id
in: path
required: true
schema:
type: string
description: ID of the user
title: User Id
description: ID of the user
- name: collection_id
in: path
required: true
schema:
type: string
description: ID of the collection
title: Collection Id
description: ID of the collection
- name: reverse
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Whether to reverse the order of results
default: false
title: Reverse
description: Whether to reverse the order of results
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
requestBody:
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/DocumentGet'
- type: 'null'
description: Filtering options for the documents list
title: Options
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Page_Document_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: JavaScript
source: "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n // Automatically fetches more pages as needed.\n for await (const document of client.apps.users.collections.documents.list(\n 'app_id',\n 'user_id',\n 'collection_id',\n )) {\n console.log(document.id);\n }\n}\n\nmain();"
- lang: Python
source: "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n api_key=os.environ.get(\"HONCHO_API_KEY\"), # This is the default and can be omitted\n)\npage = client.apps.users.collections.documents.list(\n collection_id=\"collection_id\",\n app_id=\"app_id\",\n user_id=\"user_id\",\n)\npage = page.items[0]\nprint(page.id)"
/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/{document_id}:
get:
tags:
- Documents
summary: Get Document
description: Get a document by ID
operationId: get_document_v1_apps__app_id__users__user_id__collections__collection_id__documents__document_id__get
security:
- HTTPBearer: []
- {}
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: ID of the app
title: App Id
description: ID of the app
- name: user_id
in: path
required: true
schema:
type: string
description: ID of the user
title: User Id
description: ID of the user
- name: collection_id
in: path
required: true
schema:
type: string
description: ID of the collection
title: Collection Id
description: ID of the collection
- name: document_id
in: path
required: true
schema:
type: string
description: ID of the document to retrieve
title: Document Id
description: ID of the document to retrieve
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Document'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: JavaScript
source: "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n const document = await client.apps.users.collections.documents.get(\n 'app_id',\n 'user_id',\n 'collection_id',\n 'document_id',\n );\n\n console.log(document.id);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n api_key=os.environ.get(\"HONCHO_API_KEY\"), # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.get(\n document_id=\"document_id\",\n app_id=\"app_id\",\n user_id=\"user_id\",\n collection_id=\"collection_id\",\n)\nprint(document.id)"
put:
tags:
- Documents
summary: Update Document
description: Update the content and/or the metadata of a Document
operationId: update_document_v1_apps__app_id__users__user_id__collections__collection_id__documents__document_id__put
security:
- HTTPBearer: []
- {}
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: ID of the app
title: App Id
description: ID of the app
- name: user_id
in: path
required: true
schema:
type: string
description: ID of the user
title: User Id
description: ID of the user
- name: collection_id
in: path
required: true
schema:
type: string
description: ID of the collection
title: Collection Id
description: ID of the collection
- name: document_id
in: path
required: true
schema:
type: string
description: ID of the document to update
title: Document Id
description: ID of the document to update
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentUpdate'
description: Updated document parameters
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Document'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: JavaScript
source: "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n const document = await client.apps.users.collections.documents.update(\n 'app_id',\n 'user_id',\n 'collection_id',\n 'document_id',\n );\n\n console.log(document.id);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n api_key=os.environ.get(\"HONCHO_API_KEY\"), # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.update(\n document_id=\"document_id\",\n app_id=\"app_id\",\n user_id=\"user_id\",\n collection_id=\"collection_id\",\n)\nprint(document.id)"
delete:
tags:
- Documents
summary: Delete Document
description: Delete a Document by ID
operationId: delete_document_v1_apps__app_id__users__user_id__collections__collection_id__documents__document_id__delete
security:
- HTTPBearer: []
- {}
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: ID of the app
title: App Id
description: ID of the app
- name: user_id
in: path
required: true
schema:
type: string
description: ID of the user
title: User Id
description: ID of the user
- name: collection_id
in: path
required: true
schema:
type: string
description: ID of the collection
title: Collection Id
description: ID of the collection
- name: document_id
in: path
required: true
schema:
type: string
description: ID of the document to delete
title: Document Id
description: ID of the document to delete
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: JavaScript
source: "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n const document = await client.apps.users.collections.documents.delete(\n 'app_id',\n 'user_id',\n 'collection_id',\n 'document_id',\n );\n\n console.log(document);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n api_key=os.environ.get(\"HONCHO_API_KEY\"), # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.delete(\n document_id=\"document_id\",\n app_id=\"app_id\",\n user_id=\"user_id\",\n collection_id=\"collection_id\",\n)\nprint(document)"
/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/query:
post:
tags:
- Documents
summary: Query Documents
description: Cosine Similarity Search for Documents
operationId: query_documents_v1_apps__app_id__users__user_id__collections__collection_id__documents_query_post
security:
- HTTPBearer: []
- {}
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: ID of the app
title: App Id
description: ID of the app
- name: user_id
in: path
required: true
schema:
type: string
description: ID of the user
title: User Id
description: ID of the user
- name: collection_id
in: path
required: true
schema:
type: string
description: ID of the collection
title: Collection Id
description: ID of the collection
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentQuery'
description: Query parameters for document search
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Document'
title: Response Query Documents V1 Apps App Id Users User Id Collections Collection Id Documents Query Post
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: JavaScript
source: "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n const documents = await client.apps.users.collections.documents.query(\n 'app_id',\n 'user_id',\n 'collection_id',\n { query: 'x' },\n );\n\n console.log(documents);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n api_key=os.environ.get(\"HONCHO_API_KEY\"), # This is the default and can be omitted\n)\ndocuments = client.apps.users.collections.documents.query(\n collection_id=\"collection_id\",\n app_id=\"app_id\",\n user_id=\"user_id\",\n query=\"x\",\n)\nprint(documents)"
/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents:
post:
tags:
- Documents
summary: Create Document
description: Embed text as a vector and create a Document
operationId: create_document_v1_apps__app_id__users__user_id__collections__collection_id__documents_post
security:
- HTTPBearer: []
- {}
parameters:
- name: app_id
in: path
required: true
schema:
type: string
description: ID of the app
title: App Id
description: ID of the app
- name: user_id
in: path
required: true
schema:
type: string
description: ID of the user
title: User Id
description: ID of the user
- name: collection_id
in: path
required: true
schema:
type: string
description: ID of the collection
title: Collection Id
description: ID of the collection
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentCreate'
description: Document creation parameters
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Document'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
x-codeSamples:
- lang: JavaScript
source: "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n const document = await client.apps.users.collections.documents.create(\n 'app_id',\n 'user_id',\n 'collection_id',\n { content: 'x' },\n );\n\n console.log(document.id);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n api_key=os.environ.get(\"HONCHO_API_KEY\"), # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.create(\n collection_id=\"collection_id\",\n app_id=\"app_id\",\n user_id=\"user_id\",\n content=\"x\",\n)\nprint(document.id)"
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Document:
properties:
id:
type: string
title: Id
content:
type: string
title: Content
metadata:
additionalProperties: true
type: object
title: Metadata
default: {}
created_at:
type: string
format: date-time
title: Created At
collection_id:
type: string
title: Collection Id
app_id:
type: string
title: App Id
user_id:
type: string
title: User Id
type: object
required:
- id
- content
- created_at
- collection_id
- app_id
- user_id
title: Document
DocumentUpdate:
properties:
metadata:
anyOf:
- additionalProperties: true
type: object
maxProperties: 10000
- type: 'null'
title: Metadata
content:
anyOf:
- type: string
maxLength: 100000
minLength: 1
- type: 'null'
title: Content
type: object
title: DocumentUpdate
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
DocumentQuery:
properties:
query:
type: string
maxLength: 1000
minLength: 1
title: Query
filter:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Filter
top_k:
type: integer
maximum: 50
minimum: 1
title: Top K
default: 5
type: object
required:
- query
title: DocumentQuery
DocumentCreate:
properties:
content:
type: string
maxLength: 100000
minLength: 1
title: Content
metadata:
additionalProperties: true
type: object
title: Metadata
default: {}
type: object
required:
- content
title: DocumentCreate
DocumentGet:
properties:
filter:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Filter
type: object
title: DocumentGet
Page_Document_:
properties:
items:
items:
$ref: '#/components/schemas/Document'
type: array
title: Items
total:
type: integer
minimum: 0
title: Total
page:
type: integer
minimum: 1
title: Page
size:
type: integer
minimum: 1
title: Size
pages:
type: integer
minimum: 0
title: Pages
type: object
required:
- items
- total
- page
- size
title: Page[Document]
securitySchemes:
HTTPBearer:
type: http
scheme: bearer