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/getminds:getminds-study-templates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: Minds Public Study Templates API
version: v1
description: 'OpenAPI 3.1.0 spec for the Minds public API (https://getminds.ai/api/v1 / https://api.getminds.ai/v1). Generate a typed TypeScript client by running an OpenAPI generator (e.g. `openapi-typescript`) against `/_openapi.json`. Auth: send `Authorization: Bearer minds_…_key`; create keys in Settings → API Keys.'
servers:
- url: https://api.getminds.ai
description: Production (api subdomain)
- url: https://getminds.ai
description: Production (apex)
security:
- ApiKeyAuth: []
tags:
- name: Study Templates
paths:
/api/v1/study-templates/{id}:
delete:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
'400':
description: Invalid template configuration or request.
'401':
description: Unauthorized.
'404':
description: Template not found or not owned by the caller.
'409':
description: Revision changed or a saved Audience/file is unavailable.
operationId: deleteStudyTemplate
summary: Delete a personal Study template
description: 'Templates are private by default. Owners may enable team sharing; current teammates can read and use shared templates. Only owners may update, delete or change sharing. Saved questions are copied into a new editable draft on use; using a template never starts research. Uploaded assets are copied on save and use. A template also carries the research method it was built with: a calculator-backed method that designs its own tasks at execution (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) writes those questions when the Study runs, and the saved questions are asked alongside them.'
tags:
- Study Templates
security:
- ApiKeyAuth: []
get:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/StudyTemplate'
'400':
description: Invalid template configuration or request.
'401':
description: Unauthorized.
'404':
description: Template not found or not owned by the caller.
'409':
description: Revision changed or a saved Audience/file is unavailable.
operationId: getStudyTemplate
summary: Get a personal Study template
description: 'Templates are private by default. Owners may enable team sharing; current teammates can read and use shared templates. Only owners may update, delete or change sharing. Saved questions are copied into a new editable draft on use; using a template never starts research. Uploaded assets are copied on save and use. A template also carries the research method it was built with: a calculator-backed method that designs its own tasks at execution (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) writes those questions when the Study runs, and the saved questions are asked alongside them.'
tags:
- Study Templates
security:
- ApiKeyAuth: []
patch:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/StudyTemplate'
'400':
description: Invalid template configuration or request.
'401':
description: Unauthorized.
'404':
description: Template not found or not owned by the caller.
'409':
description: Revision changed or a saved Audience/file is unavailable.
operationId: updateStudyTemplate
summary: Rename or replace a Study template
description: 'Templates are private by default. Owners may enable team sharing; current teammates can read and use shared templates. Only owners may update, delete or change sharing. Saved questions are copied into a new editable draft on use; using a template never starts research. Uploaded assets are copied on save and use. A template also carries the research method it was built with: a calculator-backed method that designs its own tasks at execution (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) writes those questions when the Study runs, and the saved questions are asked alongside them.'
tags:
- Study Templates
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StudyTemplateUpdateInput'
/api/v1/study-templates/{id}/use:
post:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'201':
description: Created.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/StudyDraft'
'400':
description: Invalid template configuration or request.
'401':
description: Unauthorized.
'404':
description: Template not found or not owned by the caller.
'409':
description: Revision changed or a saved Audience/file is unavailable.
operationId: instantiateStudyTemplate
summary: Create an independent draft from a Study template
description: 'Templates are private by default. Owners may enable team sharing; current teammates can read and use shared templates. Only owners may update, delete or change sharing. Saved questions are copied into a new editable draft on use; using a template never starts research. Uploaded assets are copied on save and use. A template also carries the research method it was built with: a calculator-backed method that designs its own tasks at execution (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) writes those questions when the Study runs, and the saved questions are asked alongside them.'
tags:
- Study Templates
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StudyTemplateUseInput'
/api/v1/study-templates:
get:
parameters: []
responses:
'200':
description: Success.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: array
items:
$ref: '#/components/schemas/StudyTemplate'
'400':
description: Invalid template configuration or request.
'401':
description: Unauthorized.
'404':
description: Template not found or not owned by the caller.
'409':
description: Revision changed or a saved Audience/file is unavailable.
operationId: listStudyTemplates
summary: List your personal Study templates
description: 'Templates are private by default. Owners may enable team sharing; current teammates can read and use shared templates. Only owners may update, delete or change sharing. Saved questions are copied into a new editable draft on use; using a template never starts research. Uploaded assets are copied on save and use. A template also carries the research method it was built with: a calculator-backed method that designs its own tasks at execution (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) writes those questions when the Study runs, and the saved questions are asked alongside them.'
tags:
- Study Templates
security:
- ApiKeyAuth: []
post:
parameters: []
responses:
'201':
description: Created.
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/StudyTemplate'
'400':
description: Invalid template configuration or request.
'401':
description: Unauthorized.
'404':
description: Template not found or not owned by the caller.
'409':
description: Revision changed or a saved file is unavailable.
operationId: saveStudyTemplate
summary: Save a personal Custom Study template
description: 'Templates are private by default. Owners may enable team sharing; current teammates can read and use shared templates. Only owners may update, delete or change sharing. Saved questions are copied into a new editable draft on use; using a template never starts research. Uploaded assets are copied on save and use. A template also carries the research method it was built with: a calculator-backed method that designs its own tasks at execution (Van Westendorp, Gabor-Granger, MaxDiff, conjoint, Kano, NPS, top-box, key drivers, TURF) writes those questions when the Study runs, and the saved questions are asked alongside them.'
tags:
- Study Templates
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StudyTemplateCreateInput'
components:
schemas:
StudyTemplateUseInput:
type: object
additionalProperties: false
required:
- expectedRevision
- requestId
properties:
expectedRevision:
type: integer
minimum: 1
requestId:
type: string
format: uuid
description: Unique per intended draft; reuse only for retries.
StudyDraftPayload:
type: object
required:
- version
- state
additionalProperties: true
properties:
version:
type: integer
enum:
- 1
state:
type: object
additionalProperties: true
StudyTemplateCreateInput:
type: object
additionalProperties: false
required:
- name
- configuration
properties:
requestId:
type: string
format: uuid
description: Reuse only for retries of the same save.
name:
type: string
minLength: 1
maxLength: 200
configuration:
$ref: '#/components/schemas/StudyTemplateConfiguration'
StudyTemplate:
type: object
required:
- id
- name
- revision
- configuration
- createdAt
- updatedAt
- isSharedWithTeam
- canManage
- canShareWithTeam
properties:
id:
type: string
format: uuid
name:
type: string
revision:
type: integer
minimum: 1
isSharedWithTeam:
type: boolean
canManage:
type: boolean
description: Only the owner may update, delete or share this template.
canShareWithTeam:
type: boolean
description: The owner has a team, or can turn off existing sharing.
configuration:
$ref: '#/components/schemas/StudyTemplateConfiguration'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
StudyTemplateConfiguration:
type: object
additionalProperties: false
required:
- version
- goal
- studyLocale
- questions
- methodId
properties:
version:
type: integer
enum:
- 1
goal:
type: string
enum:
- concept
- comparison
- website
- pricing
- market
- explore
studyLocale:
type: string
enum:
- ar
- de
- en
- es
- fr
- ja
- ko
- tr
- zh
methodId:
type: string
description: A registered research method that is currently available. Methods that design their own tasks at execution (Van Westendorp, MaxDiff, Kano, NPS, …) keep only the qualitative questions in `questions`.
questions:
type: array
minItems: 1
items:
type: object
additionalProperties: false
required:
- text
- response
properties:
text:
type: string
response:
$ref: '#/components/schemas/StudyTemplateQuestionResponse'
attachments:
type: array
items:
$ref: '#/components/schemas/StudyTemplateAsset'
default: []
StudyDraft:
type: object
required:
- id
- userId
- name
- mode
- currentStep
- revision
- status
- payload
- studyId
- startRequestId
- startLeaseExpiresAt
- createdAt
- updatedAt
properties:
id:
type: string
format: uuid
userId:
type: string
format: uuid
name:
type: string
mode:
type: string
enum:
- quick
- custom
currentStep:
type: string
revision:
type: integer
minimum: 1
status:
type: string
enum:
- draft
- starting
- consumed
payload:
$ref: '#/components/schemas/StudyDraftPayload'
studyId:
type:
- string
- 'null'
format: uuid
startRequestId:
type:
- string
- 'null'
format: uuid
startLeaseExpiresAt:
type:
- string
- 'null'
format: date-time
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
StudyTemplateUpdateInput:
type: object
additionalProperties: false
required:
- expectedRevision
anyOf:
- required:
- name
- required:
- configuration
- required:
- isSharedWithTeam
properties:
name:
type: string
minLength: 1
maxLength: 200
configuration:
$ref: '#/components/schemas/StudyTemplateConfiguration'
expectedRevision:
type: integer
minimum: 1
isSharedWithTeam:
type: boolean
description: Owner only. Share with the authenticated owner’s current team, or turn sharing off.
StudyTemplateQuestionResponse:
type: object
additionalProperties: false
required:
- type
properties:
type:
type: string
enum:
- qualitative
- categorical
- multiselect
- scale
scaleRange:
type: array
items:
type: number
minItems: 2
maxItems: 2
categoricalOptions:
type: array
items:
type: string
maxSelections:
type: integer
minimum: 1
StudyTemplateAsset:
type: object
additionalProperties: false
required:
- id
- name
- url
properties:
id:
type: string
name:
type: string
url:
type: string
path:
type: string
mimeType:
type: string
kind:
type: string
enum:
- link
sizeBytes:
type: number
minimum: 0
mediaType:
type: string
enum:
- video
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
bearerFormat: API Key
description: 'Personal API key. Format: `Bearer minds_…_key`. Create one at https://getminds.ai/settings/api-keys.'