Minds Team

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}, {sparkId}, {panelId}, and similar tokens are path parameters, not literal strings.
  • DELETE operations 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 action parameter.

Meta, identity, and credentials

MethodPathPurposeMCP equivalent
GET/api/v1/openapi.jsonReturn the public OpenAPI 3.1 document; authentication is not requiredMCP publishes protocol-native tools/list discovery
GET/api/v1/auth/meRead the authenticated account identity and plan contextIntentionally transport context, not an MCP research tool
GET/api/v1/api-keysList API-key metadata; secret values are never returned againIntentionally excluded from MCP
POST/api/v1/api-keysMint an API key and return its secret onceIntentionally excluded from MCP
DELETE/api/v1/api-keys/{keyId}Revoke an API keyIntentionally 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.

MethodPathPurposeMCP equivalent
GET/api/v1/sparksList owned Minds with pagination and filterslist_minds
POST/api/v1/sparksCreate and queue training for a Mindcreate_mind
DELETE/api/v1/sparksBatch-delete confirmed Minds through canonical cleanupmanage_mind with action: "delete_many" (1–100 IDs per tool call)
GET/api/v1/sparks/libraryRead the first-party owned/shared library projectionlist_minds
GET/api/v1/sparks/{sparkId}Read one visible Mindmanage_mind with action: "get"
PUT/api/v1/sparks/{sparkId}Update editable Mind fields and sharing configurationmanage_mind with action: "update"
DELETE/api/v1/sparks/{sparkId}Delete one confirmed Mind and associated resourcesmanage_mind with action: "delete"
GET/api/v1/sparks/{sparkId}/trainingRead training status and progressget_mind_status or manage_mind with action: "get_training"
POST/api/v1/sparks/{sparkId}/retrainQueue retraining and rebuild the complete stored knowledge index before readymanage_mind with action: "retrain"
POST/api/v1/sparks/{sparkId}/regenerate-imageRegenerate the Mind profile imagemanage_mind with action: "regenerate_image"
POST/api/v1/sparks/{sparkId}/regenerate-promptRegenerate the system prompt from current knowledgemanage_mind with action: "regenerate_prompt"
POST/api/v1/sparks/{sparkId}/regenerate-embeddingsQueue a fresh vector rebuild for every stored knowledge itemmanage_mind with action: "regenerate_embeddings"
GET/api/v1/sparks/{sparkId}/patternsRead raw Mind patterns when access permitsmanage_mind with action: "get_patterns"
POST/api/v1/sparks/{sparkId}/completionRun a stateless completion with one Mindchat_with_mind
POST/api/v1/sparks/{sparkId}/exportStart or return a Mind profile exportexport_mind
GET/api/v1/sparks/{sparkId}/export-statusPoll an asynchronous Mind exportexport_mind returns status information
GET/api/v1/sparks/{sparkId}/export-downloadDownload a completed Mind exportexport_mind returns the artifact or link
GET/api/v1/user/shareable-sparksList Minds eligible for a sharing pickerlist_minds

Batch deletion accepts:

{
  "sparkIds": [
    "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

MethodPathPurposeMCP equivalent
GET/api/v1/sparks/{sparkId}/knowledgeList knowledge itemsmanage_mind_knowledge with action: "list"
POST/api/v1/sparks/{sparkId}/knowledgeAdd a link, keyword search, multipart file, or URL-referenced filemanage_mind_knowledge with action: "add"
PUT/api/v1/sparks/{sparkId}/knowledge/{itemId}Update description, watch state, or supported metadatamanage_mind_knowledge with action: "update"
DELETE/api/v1/sparks/{sparkId}/knowledge/{itemId}Delete a knowledge item and associated stored artifactmanage_mind_knowledge with action: "delete"
GET/api/v1/sparks/{sparkId}/knowledge/{itemId}/statusPoll knowledge processingmanage_mind_knowledge with action: "status"
POST/api/v1/sparks/{sparkId}/knowledge/enrichConvenience keyword-enrichment operationmanage_mind_knowledge with action: "enrich"
GET/api/v1/sparks/{sparkId}/knowledge/patternsRead knowledge patterns by frameworkmanage_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.

Groups and grounding

MethodPathPurposeMCP equivalent
GET/api/v1/groupsList visible Groupslist_groups
POST/api/v1/groupsCreate a Group from explicit Mind IDscreate_group
GET/api/v1/groups/libraryRead the first-party owned/followed/shared library projectionlist_groups
GET/api/v1/groups/{id}Read members, access, grounding, and Formationsget_group or manage_group with action: "get"
PUT/api/v1/groups/{id}Update supported Group fields and sharing configurationmanage_group with action: "update"
DELETE/api/v1/groups/{id}Delete a confirmed Groupmanage_group with action: "delete"
POST/api/v1/groups/{id}/membersAdd one Mind to a Groupmanage_group with action: "add_member"
DELETE/api/v1/groups/{id}/members/{sparkId}Remove one Mind from a Groupmanage_group with action: "remove_member"
POST/api/v1/groups/{id}/followFollow/save a visible public Groupmanage_group with action: "follow"
DELETE/api/v1/groups/{id}/followUnfollow a saved Groupmanage_group with action: "unfollow"
GET/api/v1/groups/{id}/progressRead settled creation progressmanage_group with action: "get_progress"
GET/api/v1/groups/active-progressRead active Group/Mind build progress for the UIUse per-Group or per-Mind MCP status tools
GET/api/v1/groups/lifecycle/streamStream user-scoped invalidation hints; clients re-read durable state after each eventMCP uses durable status reads instead of a browser SSE subscription
POST/api/v1/groups/{id}/recalibrateReplace stored grounding with refreshed authoritative researchrecalibrate_group
POST/api/v1/groups/{id}/regenerate-imagesRegenerate Group member images with optional limits/dry runmanage_group with action: "regenerate_images"
POST/api/v1/groups/from-briefCreate a grounded synthetic audience from a brief and sourcescreate_group_from_brief
POST/api/v1/groups/from-brief/segmentation-previewInspect respondent-data variables before representative cohort creationpreview_group_dataset_segmentation
POST/api/v1/groups/allocation-previewNon-mutating deterministic cohort-allocation previewcreate_group_from_brief cohort-allocation workflow
POST/api/v1/groups/{id}/exportStart or return a branded Group brief exportexport_group
GET/api/v1/groups/{id}/export-statusPoll an asynchronous Group exportexport_group
GET/api/v1/groups/{id}/export-downloadDownload a completed Group exportexport_group returns the artifact

Groups and Panels 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.

Group Formations

A Formation is a persisted segmentation of one Group into defined subgroups.

MethodPathPurposeMCP equivalent
GET/api/v1/groups/{id}/formationsList Formationslist_formations or manage_formation with action: "list"
POST/api/v1/groups/{id}/formationsCreate and compute a Formationmanage_formation with action: "create"
POST/api/v1/groups/{id}/formations/previewGenerate a non-persisted segmentation hypothesismanage_formation with action: "preview"
GET/api/v1/groups/{id}/formations/{formationId}Read one Formationmanage_formation with action: "get"
DELETE/api/v1/groups/{id}/formations/{formationId}Delete a confirmed Formationmanage_formation with action: "delete"
POST/api/v1/groups/{id}/formations/{formationId}/recomputeRecompute member assignmentsmanage_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.

Panels, analytics, and exports

MethodPathPurposeMCP equivalent
GET/api/v1/panelsList Panelslist_panels
POST/api/v1/panelsCreate a Panel from existing Groups or inline groupConfigscreate_panel
GET/api/v1/panels/{panelId}Read Panel composition and historyget_panel_status or manage_panel with action: "get"
DELETE/api/v1/panels/{panelId}Delete a confirmed Panelmanage_panel with action: "delete"
POST/api/v1/panels/{panelId}/askSubmit one direct question; supports SSE and queued modesask_panel
GET/api/v1/panels/{panelId}/analyticsCompute scale, categorical, and qualitative analyticsget_panel_analytics
POST/api/v1/panels/{panelId}/exportStart an export in a supported formatexport_panel
GET/api/v1/panels/{panelId}/export-statusPoll export statusexport_panel / get_panel_status
GET/api/v1/panels/{panelId}/export-downloadDownload a completed exportexport_panel returns an artifact or link
POST/api/v1/panels/{panelId}/heatmaps/{messageId}/exportStart or return a website-heatmap ZIP exportexport_heatmap
GET/api/v1/panels/{panelId}/heatmaps/{messageId}/export-statusPoll a website-heatmap ZIP exportexport_heatmap
GET/api/v1/panels/{panelId}/heatmaps/{messageId}/export-downloadDownload a completed website-heatmap ZIPexport_heatmap returns a signed URL
GET/api/v1/panels/{panelId}/summaryRead the persisted flexible semantic summaryget_panel_summary
POST/api/v1/panels/{panelId}/summaryGenerate or refresh the semantic summaryget_panel_summary with refresh: true

Composite creation through groupConfigs is atomic: if any inline Group fails, the operation rolls back the Panel and Groups created by that request.

Guided Studies and durable runs

MethodPathPurposeMCP equivalent
POST/api/v1/panels/{panelId}/research-plans/previewCreate or revise a versioned research-plan draftplan_panel_study
POST/api/v1/panels/{panelId}/studiesConfirm and run the exact reviewed plan revisionrun_panel_study
GET/api/v1/panels/{panelId}/studies/{studyId}Poll Study progress, methods, artifacts, and calculationsget_panel_study
POST/api/v1/panels/{panelId}/runsStart a durable direct Panel runask_panel for direct questions or run_panel_study for planned research
GET/api/v1/panels/{panelId}/runsList durable runs for a Panelget_panel_status / get_panel_study
GET/api/v1/runs/{runId}Read durable run statusget_panel_status / get_panel_study
GET/api/v1/runs/{runId}/eventsRead ordered run events using after and limit cursorsMCP status tools return durable progress
POST/api/v1/runs/{runId}/cancelCancel a running durable jobNo dedicated curated MCP tool
GET/api/v1/research-methodsList versioned methods, execution support, requirements, and fallbackslist_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.

MethodPathPurposeMCP equivalent
GET/api/v1/study-draftsList owned resumable draftslist_study_drafts
POST/api/v1/study-draftsCreate a durable draftsave_study_draft
GET/api/v1/study-drafts/{id}Read one complete draftlist_study_drafts with draftId
PATCH/api/v1/study-drafts/{id}Revise a draft using optimistic concurrencysave_study_draft with draftId and expectedRevision
DELETE/api/v1/study-drafts/{id}Delete a confirmed draftmanage_study_draft with action: "delete"
POST/api/v1/study-drafts/{id}/consumeMark a precise revision consumed and optionally attach it to a Panelmanage_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

MethodPathPurposeMCP equivalent
POST/api/v1/chatsCreate a stateful single-Mind, multi-Mind, or Group-backed chatmanage_chat with action: "create"
POST/api/v1/chats/{chatId}/messagesAppend a user/system message and receive the next responsemanage_chat with action: "send_message"
DELETE/api/v1/chats/{chatId}Delete a confirmed chat and its persisted historymanage_chat with action: "delete"

For a one-off Mind request without server-managed history, use the stateless completion endpoint instead.

Choosing the next reference