Minds Study Drafts API

The Study Drafts API from Minds — 3 operation(s) for study drafts.

Operations 6

DELETE /api/v1/study-drafts/{id} Delete a Study draft #
GET /api/v1/study-drafts/{id} Get a Study draft #
PATCH /api/v1/study-drafts/{id} Update a Study draft #
POST /api/v1/study-drafts/{id}/consume Consume a Study draft after launch #
GET /api/v1/study-drafts List active Study drafts #
POST /api/v1/study-drafts Create a durable Study draft #

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-drafts-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-drafts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Minds Public Study Drafts 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 Drafts
paths:
  /api/v1/study-drafts/{id}:
    delete:
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Study draft deleted.
        '401':
          description: Unauthorized.
        '404':
          description: Study draft not found.
      operationId: deleteStudyDraft
      summary: Delete a Study draft
      tags:
      - Study Drafts
      security:
      - ApiKeyAuth: []
    get:
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Owned Study draft.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/StudyDraft'
        '401':
          description: Unauthorized.
        '404':
          description: Study draft not found.
      operationId: getStudyDraft
      summary: Get a Study draft
      tags:
      - Study Drafts
      security:
      - ApiKeyAuth: []
    patch:
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Updated Study draft.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/StudyDraft'
        '401':
          description: Unauthorized.
        '404':
          description: Study draft not found.
        '409':
          description: Stale revision or consumed draft.
        '413':
          description: Payload too large.
      operationId: updateStudyDraft
      summary: Update a Study draft
      description: Save an exact planning snapshot using optimistic revision compare-and-swap. A successful update increments revision.
      tags:
      - Study Drafts
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - expectedRevision
              properties:
                expectedRevision:
                  type: integer
                  minimum: 1
                name:
                  type: string
                mode:
                  type: string
                  enum:
                  - quick
                  - custom
                currentStep:
                  type: string
                payload:
                  $ref: '#/components/schemas/StudyDraftPayload'
  /api/v1/study-drafts/{id}/consume:
    post:
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Consumed Study draft.
        '401':
          description: Unauthorized.
        '404':
          description: Study draft not found.
        '409':
          description: Stale revision.
      operationId: consumeStudyDraft
      summary: Consume a Study draft after launch
      description: Idempotently closes a draft after its Study crosses the durable execution boundary. The consumed tombstone prevents delayed clients from recreating the draft.
      tags:
      - Study Drafts
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - expectedRevision
              properties:
                expectedRevision:
                  type: integer
                  minimum: 1
                studyId:
                  type:
                  - string
                  - 'null'
                  format: uuid
  /api/v1/study-drafts:
    get:
      parameters: []
      responses:
        '200':
          description: Active Study drafts.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/StudyDraft'
        '401':
          description: Unauthorized.
      operationId: listStudyDrafts
      summary: List active Study drafts
      description: List only draft and starting Study drafts owned by the authenticated user, newest first.
      tags:
      - Study Drafts
      security:
      - ApiKeyAuth: []
    post:
      parameters: []
      responses:
        '201':
          description: Study draft created.
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/StudyDraft'
        '401':
          description: Unauthorized.
        '409':
          description: The supplied draft ID already exists.
        '413':
          description: The versioned payload exceeds the allowed size.
      operationId: createStudyDraft
      summary: Create a durable Study draft
      description: Create a resumable Quick or Custom Study planning snapshot. This does not start research.
      tags:
      - Study Drafts
      security:
      - ApiKeyAuth: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StudyDraftCreateInput'
components:
  schemas:
    StudyDraftCreateInput:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        mode:
          type: string
          enum:
          - quick
          - custom
        currentStep:
          type: string
        payload:
          $ref: '#/components/schemas/StudyDraftPayload'
        idempotencyKey:
          type: string
    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
    StudyDraftPayload:
      type: object
      required:
      - version
      - state
      additionalProperties: true
      properties:
        version:
          type: integer
          enum:
          - 1
        state:
          type: object
          additionalProperties: true
  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.'