CardMind API

CardMind API as documented publicly: 12 operations. Contract generated from the documentation by API Evangelist (2026-11-03); not the provider's own document.

Operations 12

GET /api/cards Public Retrieve a single card by its Scryfall UUID. #
POST /api/cards/bulk-lookup Public Look up multiple cards by name in a single request. #
POST /api/cards/search POST /api/cards/search #
GET /api/cards/{cardId} Get a card by Scryfall ID #
GET /api/health No auth required Simple liveness check. #
POST /api/internal/fleet-heartbeat Internal only Internal use only. This endpoint is called by CardMind satellite projects to register health pings. #
GET /api/prices/history Public Retrieves the full price history for a card by Scryfall UUID. #
GET /api/prices/history/e3285e6b-3e79-4d7c-bf96-d920f973b122 Public Retrieves the full price history for a card by Scryfall UUID. #
GET /api/prices/movers Public Returns the top price gainers and losers for a given time period. #
GET /api/signals/recent Public Returns recent global market signals: algorithmically detected price movement events and market trend alerts. #
DELETE /api/webhooks Deleting a Webhook #
POST /api/webhooks POST /api/webhooks #

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/cardmind-app:cardmind-app-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

cardmind-app-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: CardMind API
  version: '2026-11-03'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-03: 12 operation(s) read from 7 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; CardMind has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 2
    documentation: 10
    pages-with-code: 6
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-03'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://api.cardmind.app/docs/endpoints
  - https://api.cardmind.app/docs/examples
  - https://api.cardmind.app/docs/webhooks
  - https://api.cardmind.app/docs
  - https://api.cardmind.app/docs/mcp
  - https://api.cardmind.app/docs/rate-limits
  - https://api.cardmind.app/docs/authentication
paths:
  /api/cards:
    get:
      operationId: get_api_cards
      tags:
      - Api
      summary: Public Retrieve a single card by its Scryfall UUID.
      x-source: https://api.cardmind.app/docs/endpoints
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiCardsResponse'
      x-evidence:
        kind: documentation
  /api/cards/bulk-lookup:
    post:
      operationId: post_api_cards_bulk_lookup
      tags:
      - Api
      summary: Public Look up multiple cards by name in a single request.
      x-source: https://api.cardmind.app/docs/endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiCardsBulkLookupRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiCardsBulkLookupResponse'
      x-evidence:
        kind: documentation
  /api/cards/search:
    post:
      operationId: post_api_cards_search
      tags:
      - Api
      summary: POST /api/cards/search
      x-source: https://api.cardmind.app/docs/endpoints
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
      - name: q
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiCardsSearchRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiCardsSearchResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \"https://api.cardmind.app/api/cards/search?q=lightning+bolt&limit=2\"  -H \"Authorization: Bearer cm_live_YOUR_KEY\" Example\
          \ response {\n \"data\": [\n {\n \"scryfall_id\": \"f29ba16f-c8fb-42fe-aabf-87089cb214a7\",\n \"name\": \"Lightning Bolt\",\n \"set_code\"\
          : \"lea\",\n \"image_uri_normal\": \"https://cards.scryfall.io/normal/front/f/2/f29ba16f-c8fb-42fe-aabf-87089cb214a7.jpg\",\n \"image_uri_large\"\
          : \"https://cards.sc"
  /api/cards/{cardId}:
    get:
      operationId: get_api_cards_cardId
      tags:
      - Api
      summary: Get a card by Scryfall ID
      description: Retrieve a specific card and its price history by Scryfall ID.
      x-source: https://api.cardmind.app/docs/examples
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiCardsCardidResponse'
      x-evidence:
        kind: documentation
  /api/health:
    get:
      operationId: get_api_health
      tags:
      - Api
      summary: No auth required Simple liveness check.
      x-source: https://api.cardmind.app/docs/endpoints
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiHealthResponse'
      x-evidence:
        kind: documentation
  /api/internal/fleet-heartbeat:
    post:
      operationId: post_api_internal_fleet_heartbeat
      tags:
      - Api
      summary: Internal only Internal use only. This endpoint is called by CardMind satellite projects to register health pings.
      x-source: https://api.cardmind.app/docs/endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiInternalFleetHeartbeatRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiInternalFleetHeartbeatResponse'
      x-evidence:
        kind: documentation
  /api/prices/history:
    get:
      operationId: get_api_prices_history
      tags:
      - Api
      summary: Public Retrieves the full price history for a card by Scryfall UUID.
      x-source: https://api.cardmind.app/docs/endpoints
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
        description: 'Number of days of history to return. Default: 30. Max: 365'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiPricesHistoryResponse'
      x-evidence:
        kind: documentation
  /api/prices/history/e3285e6b-3e79-4d7c-bf96-d920f973b122:
    get:
      operationId: get_api_prices_history_e3285e6b_3e79_4d7c_bf96_d920f973b122
      tags:
      - Api
      summary: Public Retrieves the full price history for a card by Scryfall UUID.
      x-source: https://api.cardmind.app/docs/endpoints
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiPricesHistoryE3285E6B3E794D7CBf96D920F973B122Response'
      x-evidence:
        kind: documentation
  /api/prices/movers:
    get:
      operationId: get_api_prices_movers
      tags:
      - Api
      summary: Public Returns the top price gainers and losers for a given time period.
      x-source: https://api.cardmind.app/docs/endpoints
      parameters:
      - name: period
        in: query
        required: false
        schema:
          type: string
        description: 'Time window for price comparison. Default: "7d".'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: 'Number of cards to return in each list (gainers + losers). Default: 10. Max: 100'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiPricesMoversResponse'
      x-evidence:
        kind: documentation
  /api/signals/recent:
    get:
      operationId: get_api_signals_recent
      tags:
      - Api
      summary: 'Public Returns recent global market signals: algorithmically detected price movement events and market trend alerts.'
      x-source: https://api.cardmind.app/docs/endpoints
      parameters:
      - name: type
        in: query
        required: false
        schema:
          type: string
        description: Filter by signal type
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: 'Number of signals to return. Default: 20. Max: 100'
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: 'Number of results to skip for pagination. Default: 0'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiSignalsRecentResponse'
      x-evidence:
        kind: documentation
  /api/webhooks:
    delete:
      operationId: delete_api_webhooks
      tags:
      - Api
      summary: Deleting a Webhook
      description: Send a DELETE to /api/webhooks with the webhook id as either a query param or in the JSON body.
      x-source: https://api.cardmind.app/docs/webhooks
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: string
        description: The webhook id to delete
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteApiWebhooksResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_webhooks
      tags:
      - Api
      summary: POST /api/webhooks
      x-source: https://api.cardmind.app/docs/webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiWebhooksRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiWebhooksResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \"https://api.cardmind.app/api/webhooks\"  -H \"Authorization: Bearer cm_live_YOUR_KEY\" Example response {\n \"data\"\
          : [\n {\n \"id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"url\": \"https://your-server.com/webhooks/cardmind\",\n \"events\":\
          \ [\"signal.fired\", \"price.spike\"],\n \"is_active\": true,\n \"consecutive_failures\": 0,\n \"last_delivered_at\": null,\n \"created_at\"\
          : \"2026-05-29T12:00:00Z\"\n }\n ],\n \"error\": nu"
components:
  schemas:
    GetApiCardsResponse:
      type: object
      properties:
        data:
          type: object
          description: Card metadata and price history
        error:
          type: string
          description: null on success
    PostApiCardsBulkLookupRequest:
      type: object
      properties:
        names:
          type: array
          description: Array of card names to look up.
      required:
      - names
    PostApiCardsBulkLookupResponse:
      type: object
      properties:
        data:
          type: array
          description: Array of matched card objects
        error:
          type: string
          description: null on success
    PostApiCardsSearchRequest:
      type: object
      properties:
        names:
          type: array
          items:
            type: string
    PostApiCardsSearchResponse:
      type: object
      properties:
        scryfall_id:
          type: string
        name:
          type: string
        set_code:
          type: string
        image_uri_normal:
          type: string
        image_uri_large:
          type: string
        prices:
          type: object
          properties:
            usd:
              type: string
            usd_foil:
              type:
              - string
              - 'null'
            eur:
              type: string
            eur_foil:
              type:
              - string
              - 'null'
        legalities:
          type: object
          properties:
            standard:
              type: string
            modern:
              type: string
            legacy:
              type: string
            vintage:
              type: string
        card_data:
          type: object
          properties:
            rarity:
              type: string
            type_line:
              type: string
            oracle_text:
              type: string
            mana_cost:
              type: string
            cmc:
              type: number
        prices_updated_at:
          type: string
          format: date-time
    GetApiCardsCardidResponse:
      type: object
      properties:
        data:
          type: object
          description: Contains card and price_history
        card:
          type: object
          description: Card details
        price_history:
          type: array
          description: Historical price entries
    GetApiHealthResponse:
      type: object
      properties:
        data:
          type: object
          description: Contains status field
        error:
          type: string
          description: null on success
    PostApiInternalFleetHeartbeatRequest:
      type: object
      properties:
        project:
          type: string
          description: Name of the calling satellite project
        status:
          type: string
          description: '"healthy" | "degraded" | "down"'
        version:
          type: string
          description: Deployed version string of the satellite
        metadata:
          type: object
          description: Optional key-value map of additional diagnostic information
      required:
      - project
      - status
      - version
    PostApiInternalFleetHeartbeatResponse:
      type: object
      properties:
        data:
          type: object
          description: Contains ok flag
        error:
          type: string
          description: null on success
    GetApiPricesHistoryResponse:
      type: object
      properties:
        data:
          type: array
          description: Array of daily price points
        error:
          type: string
          description: null on success
    GetApiPricesHistoryE3285E6B3E794D7CBf96D920F973B122Response:
      type: object
      properties:
        data:
          type: array
          description: Array of daily price points
        error:
          type: string
          description: null on success
    GetApiPricesMoversResponse:
      type: object
      properties:
        data:
          type: object
          description: Contains gainers and losers arrays
        error:
          type: string
          description: null on success
    GetApiSignalsRecentResponse:
      type: object
      properties:
        data:
          type: array
          description: Array of signal objects
        error:
          type: string
          description: null on success
    DeleteApiWebhooksResponse:
      type: object
      properties:
        data:
          type: object
          description: Result of deletion
        data.deleted:
          type: boolean
          description: True if the webhook was deleted
        error:
          type: string
          description: Error information (null on success)
    PostApiWebhooksRequest:
      type: object
      properties:
        url:
          type: string
        events:
          type: array
          items:
            type: string
    PostApiWebhooksResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              url:
                type: string
              events:
                type: array
                items:
                  type: string
              is_active:
                type: boolean
              consecutive_failures:
                type: integer
              last_delivered_at:
                type:
                - string
                - 'null'
              created_at:
                type: string
                format: date-time
        error:
          type:
          - string
          - 'null'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api