Minds v1 API Endpoint Catalog
Complete customer-facing catalog of Minds v1 REST endpoints, response modes, and corresponding MCP capabilities.
This catalog lists the complete customer-facing v1 route surface. Use it with the live OpenAPI 3.1 document for schemas and the agent integration guide for safe orchestration patterns.
Conventions
- Apex base URL:
https://getminds.ai/api/v1 - API-subdomain base URL:
https://api.getminds.ai/v1 - Authentication:
Authorization: Bearer minds_… - JSON requests:
Content-Type: application/json - Most JSON responses use
{ "data": ... }; validation and access failures use the shared error envelope documented under Errors & Limits. {id},{mindId},{studyId}, and similar tokens are path parameters, not literal strings.DELETEoperations are destructive. Confirm the exact resource identifiers before calling them.- MCP mappings identify the equivalent capability. An MCP tool may compose more than one v1 request or expose several routes through an
actionparameter.
Meta, identity, and credentials
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/openapi.json | Return the public OpenAPI 3.1 document; authentication is not required | MCP publishes protocol-native tools/list discovery |
GET | /api/v1/auth/me | Read the authenticated account identity and plan context | Intentionally transport context, not an MCP research tool |
GET | /api/v1/api-keys | List API-key metadata; secret values are never returned again | Intentionally excluded from MCP |
POST | /api/v1/api-keys | Mint an API key and return its secret once | Intentionally excluded from MCP |
DELETE | /api/v1/api-keys/{keyId} | Revoke an API key | Intentionally excluded from MCP |
MCP sessions cannot mint, rotate, or revoke their own bearer credentials. Manage credentials only through authenticated account settings or the REST endpoints above.
Minds
The historical API resource name for a Mind is spark.
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/minds | List owned Minds with pagination and filters | list_minds |
POST | /api/v1/minds | Create and queue training for a Mind | create_mind |
DELETE | /api/v1/minds | Batch-delete confirmed Minds through canonical cleanup | manage_mind with action: "delete_many" (1–100 IDs per tool call) |
GET | /api/v1/minds/library | Read the first-party owned/shared library projection | list_minds |
GET | /api/v1/minds/{mindId} | Read one visible Mind | manage_mind with action: "get" |
PUT | /api/v1/minds/{mindId} | Update editable Mind fields and sharing configuration | manage_mind with action: "update" |
DELETE | /api/v1/minds/{mindId} | Delete one confirmed Mind and associated resources | manage_mind with action: "delete" |
GET | /api/v1/minds/{mindId}/training | Read training status and progress | get_mind_status or manage_mind with action: "get_training" |
POST | /api/v1/minds/{mindId}/retrain | Queue retraining and rebuild the complete stored knowledge index before ready | manage_mind with action: "retrain" |
POST | /api/v1/minds/{mindId}/regenerate-image | Regenerate the Mind profile image | manage_mind with action: "regenerate_image" |
POST | /api/v1/minds/{mindId}/regenerate-prompt | Regenerate the system prompt from current knowledge | manage_mind with action: "regenerate_prompt" |
POST | /api/v1/minds/{mindId}/regenerate-embeddings | Queue a fresh vector rebuild for every stored knowledge item | manage_mind with action: "regenerate_embeddings" |
GET | /api/v1/minds/{mindId}/patterns | Read raw Mind patterns when access permits | manage_mind with action: "get_patterns" |
POST | /api/v1/minds/{mindId}/completion | Run a stateless completion with one Mind | chat_with_mind |
POST | /api/v1/minds/{mindId}/export | Start or return a Mind profile export | export_mind |
GET | /api/v1/minds/{mindId}/export-status | Poll an asynchronous Mind export | export_mind returns status information |
GET | /api/v1/minds/{mindId}/export-download | Download a completed Mind export | export_mind returns the artifact or link |
GET | /api/v1/user/shareable-sparks | List Minds eligible for a sharing picker | list_minds |
Batch deletion accepts:
{
"mindIds": [
"550e8400-e29b-41d4-a716-446655440000",
"550e8400-e29b-41d4-a716-446655440001"
]
}
The response reports deleted, notFound, and failed IDs independently so one cleanup failure does not conceal the rest of the batch.
Mind knowledge
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/minds/{mindId}/knowledge | List knowledge items | manage_mind_knowledge with action: "list" |
POST | /api/v1/minds/{mindId}/knowledge | Add a link, keyword search, multipart file, or URL-referenced file | manage_mind_knowledge with action: "add" |
PUT | /api/v1/minds/{mindId}/knowledge/{itemId} | Update description, watch state, or supported metadata | manage_mind_knowledge with action: "update" |
DELETE | /api/v1/minds/{mindId}/knowledge/{itemId} | Delete a knowledge item and associated stored artifact | manage_mind_knowledge with action: "delete" |
GET | /api/v1/minds/{mindId}/knowledge/{itemId}/status | Poll knowledge processing | manage_mind_knowledge with action: "status" |
POST | /api/v1/minds/{mindId}/knowledge/enrich | Convenience keyword-enrichment operation | manage_mind_knowledge with action: "enrich" |
GET | /api/v1/minds/{mindId}/knowledge/patterns | Read knowledge patterns by framework | manage_mind_knowledge with action: "patterns" |
For agent-originated files, pass a public, short-lived signed, or Minds workspace-upload URL rather than base64 content:
{
"file": {
"name": "research-brief.pdf",
"url": "https://signed.example/research-brief.pdf",
"type": "application/pdf"
},
"description": "Primary customer research brief",
"regeneratePrompt": true
}
Remote retrieval is SSRF-guarded, limited to 50 MB, and time-bounded. Multipart and URL-referenced files enter the same storage and processing queue.
Canonical product resources are Audiences and Studies. The former /api/v1/groups and /api/v1/panels paths remain callable during the compatibility window, but return Deprecation: true and a Link header pointing to the canonical successor. New integrations should not use the legacy paths or names.
Audiences and grounding
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/audiences | List visible Audiences | list_audiences |
POST | /api/v1/audiences | Create an Audience from explicit Mind IDs | create_audience |
GET | /api/v1/audiences/library | Read the first-party owned/followed/shared library projection | list_audiences |
GET | /api/v1/audiences/{id} | Read members, access, grounding, and Formations | get_audience or manage_audience with action: "get" |
PUT | /api/v1/audiences/{id} | Update supported Audience fields and sharing configuration | manage_audience with action: "update" |
DELETE | /api/v1/audiences/{id} | Delete a confirmed Audience | manage_audience with action: "delete" |
POST | /api/v1/audiences/{id}/members | Add one Mind to an Audience | manage_audience with action: "add_member" |
DELETE | /api/v1/audiences/{id}/members/{mindId} | Remove one Mind from an Audience | manage_audience with action: "remove_member" |
POST | /api/v1/audiences/{id}/follow | Follow/save a visible public Audience | manage_audience with action: "follow" |
DELETE | /api/v1/audiences/{id}/follow | Unfollow a saved Audience | manage_audience with action: "unfollow" |
GET | /api/v1/audiences/{id}/progress | Read settled creation progress | manage_audience with action: "get_progress" |
GET | /api/v1/audiences/active-progress | Read active Audience/Mind build progress for the UI | Use per-Audience or per-Mind MCP status tools |
GET | /api/v1/audiences/lifecycle/stream | Stream user-scoped invalidation hints; clients re-read durable state after each event | MCP uses durable status reads instead of a browser SSE subscription |
POST | /api/v1/audiences/{id}/recalibrate | Replace stored grounding with refreshed authoritative research | recalibrate_audience |
POST | /api/v1/audiences/{id}/regenerate-images | Regenerate Audience member images with optional limits/dry run | manage_audience with action: "regenerate_images" |
POST | /api/v1/audiences/from-brief | Create a grounded synthetic audience from a brief and sources | create_audience_from_brief |
GET | /api/v1/audiences/from-brief/jobs/{jobId} | Poll an asynchronous from-brief Audience creation operation | Polled automatically by create_audience_from_brief |
POST | /api/v1/audiences/from-brief/segmentation-preview | Inspect respondent-data variables before representative cohort creation | preview_audience_dataset_segmentation |
POST | /api/v1/audiences/allocation-preview | Non-mutating deterministic cohort-allocation preview | create_audience_from_brief cohort-allocation workflow |
POST | /api/v1/audiences/{id}/export | Start or return a branded Audience brief export | export_audience |
GET | /api/v1/audiences/{id}/export-status | Poll an asynchronous Audience export | export_audience |
GET | /api/v1/audiences/{id}/export-download | Download a completed Audience export | export_audience returns the artifact |
Audiences and Studies are private by default. Set isLinkSharingEnabled: true only when the user explicitly requests a public link; doing so can make persisted grounding and attached research context readable through the shared surface.
Audience Formations
A Formation is a persisted segmentation of one Audience into defined subgroups.
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/audiences/{id}/formations | List Formations | list_formations or manage_formation with action: "list" |
POST | /api/v1/audiences/{id}/formations | Create and compute a Formation | manage_formation with action: "create" |
POST | /api/v1/audiences/{id}/formations/preview | Generate a non-persisted segmentation hypothesis | manage_formation with action: "preview" |
GET | /api/v1/audiences/{id}/formations/{formationId} | Read one Formation | manage_formation with action: "get" |
DELETE | /api/v1/audiences/{id}/formations/{formationId} | Delete a confirmed Formation | manage_formation with action: "delete" |
POST | /api/v1/audiences/{id}/formations/{formationId}/recompute | Recompute member assignments | manage_formation with action: "recompute" |
The preview endpoint content-negotiates. Use Accept: application/x-ndjson for incremental browser progress or Accept: application/json for a single agent-friendly hypothesis. Both representations use the same generator.
Studies, analytics, and exports
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/studies | List Studies | list_studies |
POST | /api/v1/studies | Create a Study from existing Audiences or inline audienceConfigs | create_study |
GET | /api/v1/studies/{studyId} | Read Study composition and history | get_study_status or manage_study with action: "get" |
DELETE | /api/v1/studies/{studyId} | Delete a confirmed Study | manage_study with action: "delete" |
POST | /api/v1/studies/{studyId}/ask | Submit one direct question; supports SSE and queued modes | ask_study |
GET | /api/v1/studies/{studyId}/analytics | Compute scale, categorical, and qualitative analytics | get_study_analytics |
POST | /api/v1/studies/{studyId}/invitations | Invite Study collaborators without exposing invitation tokens | manage_study with action: "invite" |
POST | /api/v1/studies/{studyId}/export | Start an export in a supported format | export_study |
GET | /api/v1/studies/{studyId}/export-status | Poll export status | export_study / get_study_status |
GET | /api/v1/studies/{studyId}/export-download | Download a completed export | export_study returns an artifact or link |
POST | /api/v1/studies/{studyId}/heatmaps/{messageId}/export | Start or return a website-heatmap ZIP export | export_heatmap |
GET | /api/v1/studies/{studyId}/heatmaps/{messageId}/export-status | Poll a website-heatmap ZIP export | export_heatmap |
GET | /api/v1/studies/{studyId}/heatmaps/{messageId}/export-download | Download a completed website-heatmap ZIP | export_heatmap returns a signed URL |
GET | /api/v1/studies/{studyId}/summary | Read the persisted flexible semantic summary | get_study_summary |
POST | /api/v1/studies/{studyId}/summary | Generate or refresh the semantic summary | get_study_summary with refresh: true |
PUT | /api/v1/studies/{studyId}/sharing | Enable or disable the public Study link | manage_study with action: "set_link_sharing" |
Composite creation through audienceConfigs is atomic: if any inline Audience fails, the operation rolls back the Study and Audiences created by that request. The legacy groupIds and groupConfigs request fields remain accepted on deprecated routes; canonical Study routes use audienceIds and audienceConfigs and return studyMode: "study" with an audiences collection.
Guided Studies and durable runs
For any broader objective or more than one question, plan and execute one cohesive multi-question block. Related questions should be organized into named modules or sections and run together; reserve the direct ask endpoint for a genuinely standalone question.
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
POST | /api/v1/studies/{studyId}/research-plans/preview | Create or revise a versioned research-plan draft | plan_study_questions |
POST | /api/v1/studies/{studyId}/research-runs | Confirm and run the exact reviewed plan revision | run_study_questions |
GET | /api/v1/studies/{studyId}/research-runs/{runId} | Poll Study progress, methods, artifacts, and calculations | get_study_run |
POST | /api/v1/studies/{studyId}/runs | Start a durable direct Study run | ask_study for direct questions or run_study_questions for planned research |
GET | /api/v1/studies/{studyId}/runs | List durable runs for a Study | get_study_status / get_study_run |
GET | /api/v1/runs/{runId} | Read durable run status | get_study_status / get_study_run |
GET | /api/v1/runs/{runId}/events | Read ordered run events using after and limit cursors | MCP status tools return durable progress |
POST | /api/v1/runs/{runId}/cancel | Cancel a running durable job | No dedicated curated MCP tool |
GET | /api/v1/research-methods | List versioned methods, execution support, requirements, and fallbacks | list_research_methods |
Creating a plan does not start research. Start only after the user explicitly confirms the exact returned revision. executable: false means a represented method is informational or planned, not runnable.
Durable Study drafts
These endpoints persist the same resumable planner state used by the first-party Study sidebar.
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
GET | /api/v1/study-drafts | List owned resumable drafts | list_study_drafts |
POST | /api/v1/study-drafts | Create a durable draft | save_study_draft |
GET | /api/v1/study-drafts/{id} | Read one complete draft | list_study_drafts with draftId |
PATCH | /api/v1/study-drafts/{id} | Revise a draft using optimistic concurrency | save_study_draft with draftId and expectedRevision |
DELETE | /api/v1/study-drafts/{id} | Delete a confirmed draft | manage_study_draft with action: "delete" |
POST | /api/v1/study-drafts/{id}/consume | Mark a precise revision consumed and optionally attach it to a Study | manage_study_draft with action: "consume" |
Always send the exact expectedRevision returned by the last read. A stale revision is rejected rather than overwriting newer planning state.
Stateful chats
| Method | Path | Purpose | MCP equivalent |
|---|---|---|---|
POST | /api/v1/chats | Create a stateful single-Mind, multi-Mind, or Audience-backed chat | manage_chat with action: "create" |
POST | /api/v1/chats/{chatId}/messages | Append a user/system message and receive the next response | manage_chat with action: "send_message" |
DELETE | /api/v1/chats/{chatId} | Delete a confirmed chat and its persisted history | manage_chat with action: "delete" |
For a one-off Mind request without server-managed history, use the stateless completion endpoint instead.
Choosing the next reference
- Request and response examples: Minds, Audiences, Studies, Knowledge, and Chat
- Authentication and key rotation: Authentication
- Errors, plan limits, and retry policy: Errors & Limits
- Autonomous integrations: API guide for agents
- Tool-native integrations: MCP tools reference


