Menu

API reference · Profile

Documents

profile · documents · 3 operations

GET/v1/profile/documents

List the organization's context documents

profile.documents.list

ReadIdempotentSince 2026-11-01

Lists the organization's context documents (Settings → Profile: presentations, price lists, briefs that MB Suite's AI reads as context about the organization; at most 20 per organization, counted together with Brand Voice's), newest first, paginated by cursor: file name, MIME type, size, processing status (processing, ready, or error with error_message), the AI indexing status (embedding_status, chunk_count; read but not indexed for lack of AI credits is status ready with embedding_status error and embedding_error ai_credits_exhausted, ai_personal_limit or payment_required), the AI summary of older uploads when there is one, who uploaded it and when. Brand Voice's documents are not listed here (social_brand_voice.documents.list). status filters the page read and Brand Voice's documents are dropped from it, so a page can bring fewer than limit while has_more is true: follow next_cursor. The text comes with profile.documents.get. Files are uploaded from the screen. Requires view access to the Profile module.

Scope
profile:read
Permission
View the module
MCP tool
profile_documents_listOn the full surface; on the compact one, mb_execute_operation with id: "profile.documents.list".

Declared cost: up to 202 reads and 0 writes per call (they count against the daily quota).

Parameters

limitintegerqueryoptional

How many items this page brings at most (see the maximum and the default in the schema).

Default: 50

cursorstringqueryoptional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

statusenumqueryoptional

Only documents in this processing status (filtered on the page read).

Values: processing, ready, error

Response

dataarray<object>
has_moreboolean
next_cursorstring

Errors

Example

curl "https://api.mb-suite.com/v1/profile/documents" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/profile/documents" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/profile/documents/{document_id}

Get one context document with its text

profile.documents.get

ReadIdempotentSince 2026-11-01

Returns one context document of the organization profile with the text MB Suite extracted from it (extracted_text, up to 50,000 characters; empty while it is processing or when extraction failed): the text the AI reads as context about the organization. Not found (context_document_not_found) when the id does not exist or is a Brand Voice document. The file itself is downloaded from the screen. Requires view access to the Profile module.

Scope
profile:read
Permission
View the module
MCP tool
profile_documents_getOn the full surface; on the compact one, mb_execute_operation with id: "profile.documents.get".

Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).

Parameters

document_idstringpathrequired

Id of a context document (from profile.documents.list).

Response

idstring
file_namestring
mime_typestring
size_bytesnumber
statusenum

Values: processing, ready, error

uploaded_bystring
uploaded_atnumber
updated_atnumber
error_messagestring
embedding_statusenum

Values: pending, processing, ready, error

embedding_errorstring
chunk_countnumber

Fragments indexed for the AI (retrieval).

summarystring

Short AI summary kept from older uploads (new documents have none).

extracted_textstring

Text extracted from the file (only in profile.documents.get).

Errors

Example

curl "https://api.mb-suite.com/v1/profile/documents/{document_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/profile/documents/{document_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
DELETE/v1/profile/documents/{document_id}

Delete a context document

profile.documents.delete

IrreversibleSince 2026-11-01

Deletes a context document of the organization profile for good: the file, its extracted text and its AI fragments, so MB Suite's AI stops using it. Brand Voice's documents are not reachable here (social_brand_voice.documents.delete). It does not go to the trash and cannot be undone: outside the screen it always needs a dry run (which says how many AI fragments go) and its confirm_token, and a credential allowed to delete. Returns how many fragments were removed. Requires edit access to the Profile module.

Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.

Scope
profile:write and “Allow deletions” (profile:delete in OAuth)
Permission
Edit in the module
MCP tool
profile_documents_deleteOn the full surface; on the compact one, mb_execute_operation with id: "profile.documents.delete".

Declared cost: up to 45 reads and 45 writes per call (they count against the daily quota).

Parameters

document_idstringpathrequired

Id of a context document (from profile.documents.list).

Response

oktrue
chunks_deletednumber

Errors

Example

curl -X DELETE "https://api.mb-suite.com/v1/profile/documents/{document_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X DELETE "https://api.mb-suite.com/v1/profile/documents/{document_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'