Minds Study Templates API

The Study Templates API from Minds — 3 operation(s) for study templates.

Operations 6

DELETE /api/v1/study-templates/{id} Delete a personal Study template #
GET /api/v1/study-templates/{id} Get a personal Study template #
PATCH /api/v1/study-templates/{id} Rename or replace a Study template #
POST /api/v1/study-templates/{id}/use Create an independent draft from a Study template #
GET /api/v1/study-templates List your personal Study templates #
POST /api/v1/study-templates Save a personal Custom Study template #

Work with this as data

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 Specification

getminds-study-templates-api-openapi.yml Raw ↑
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.'