Monid Public Registry API

The Public Registry API from Monid — 5 operation(s) for public registry.

Operations 5

GET /public/v1/stats Catalog-wide aggregate counts
GET /public/v1/providers List providers
GET /public/v1/providers/{provider}/endpoints List a provider's endpoints
GET /public/v1/search Keyword search over the catalog
GET /public/v1/providers/{provider}/endpoints/{endpoint} Get one endpoint

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/monid-public-registry-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

monid-public-registry-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monid Public Registry API
  version: 0.1.0
  description: Agentic payment platform for data — agents discover and buy data on demand. Authenticated `/v1/*` routes accept a Monid API key or Clerk JWT as a Bearer token. All errors return `{ code, message }`. List endpoints use cursor pagination; consult each operation schema for its last-page cursor encoding.
servers:
- url: https://api.monid.ai
  description: Production
- url: https://monid.ai
  description: Public registry alias (public/v1 only)
tags:
- name: Public Registry
paths:
  /public/v1/stats:
    get:
      tags:
      - Public Registry
      summary: Catalog-wide aggregate counts
      description: Number of enabled endpoints and providers in the public catalog.
      responses:
        '200':
          description: Aggregate counts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicRegistryStats'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /public/v1/providers:
    get:
      tags:
      - Public Registry
      summary: List providers
      description: Cursor-paginated list of providers with their enabled-endpoint counts.
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
          description: Max items per page (server-side cap applies).
          example: 20
        required: false
        description: Max items per page (server-side cap applies).
        name: limit
        in: query
      - schema:
          type: string
          description: Cursor returned by the previous page.
        required: false
        description: Cursor returned by the previous page.
        name: cursor
        in: query
      responses:
        '200':
          description: Providers page
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PublicProviderEntry'
                  cursor:
                    type: string
                    description: Opaque cursor for the next page. Absent on the last page.
                required:
                - items
        '400':
          description: Bad request — input failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /public/v1/providers/{provider}/endpoints:
    get:
      tags:
      - Public Registry
      summary: List a provider's endpoints
      description: Cursor-paginated list of a provider's enabled endpoints (display copy + price). 404 when the provider has no enabled endpoints.
      parameters:
      - schema:
          type: string
          minLength: 1
          description: Provider slug.
          example: exa
        required: true
        description: Provider slug.
        name: provider
        in: path
      - schema:
          type: integer
          exclusiveMinimum: 0
          description: Max items per page (server-side cap applies).
          example: 20
        required: false
        description: Max items per page (server-side cap applies).
        name: limit
        in: query
      - schema:
          type: string
          description: Cursor returned by the previous page.
        required: false
        description: Cursor returned by the previous page.
        name: cursor
        in: query
      responses:
        '200':
          description: Endpoints page
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PublicEndpointInfo'
                  cursor:
                    type: string
                    description: Opaque cursor for the next page. Absent on the last page.
                  total:
                    type: integer
                    minimum: 0
                    description: Total number of enabled endpoints matching the underlying query, irrespective of pagination.
                required:
                - items
        '400':
          description: Bad request — input failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Provider not found (or has no enabled endpoints)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /public/v1/search:
    get:
      tags:
      - Public Registry
      summary: Keyword search over the catalog
      description: Anonymous BM25 keyword search over the endpoint catalog.
      parameters:
      - schema:
          type: string
          minLength: 1
          maxLength: 200
          description: Free-text query. Required, 1..200 chars.
          example: twitter scraper
        required: true
        description: Free-text query. Required, 1..200 chars.
        name: q
        in: query
      - schema:
          type: integer
          exclusiveMinimum: 0
          description: Max results to return. Server caps this at the configured public search max (currently 20).
        required: false
        description: Max results to return. Server caps this at the configured public search max (currently 20).
        name: limit
        in: query
      - schema:
          type: string
          description: Opaque pagination token from a previous response. Pass it back unchanged to fetch the next page.
        required: false
        description: Opaque pagination token from a previous response. Pass it back unchanged to fetch the next page.
        name: cursor
        in: query
      responses:
        '200':
          description: Search results page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSearchResponse'
        '400':
          description: Bad request — input failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /public/v1/providers/{provider}/endpoints/{endpoint}:
    get:
      tags:
      - Public Registry
      summary: Get one endpoint
      description: Fetch a single public endpoint card. `endpoint` is the endpoint path and may itself contain slashes (e.g. `apidojo/tweet-scraper`).
      parameters:
      - schema:
          type: string
          example: apify
        required: true
        name: provider
        in: path
      - schema:
          type: string
          description: Endpoint path; may contain slashes.
          example: apidojo/tweet-scraper
        required: true
        description: Endpoint path; may contain slashes.
        name: endpoint
        in: path
      responses:
        '200':
          description: Endpoint card
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicEndpointInfo'
        '404':
          description: Endpoint not found (missing or disabled)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PublicProviderEntry:
      type: object
      properties:
        provider:
          type: string
          description: Provider slug.
        displayName:
          type: string
          description: Resolved display label (curation > slug).
        displayDescription:
          type: string
        endpointCount:
          type: integer
          minimum: 0
          description: Number of currently-enabled endpoints.
      required:
      - provider
      - displayName
      - endpointCount
    Error:
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code, duplicated in the body.
          example: 400
        message:
          type: string
          description: Human-readable error description.
          example: Bad Request
      required:
      - code
      - message
    PublicEndpointInfo:
      type: object
      properties:
        provider:
          type: string
          description: Provider slug.
          example: exa
        providerDisplayName:
          type: string
          description: Resolved provider display name (curation > slug).
        providerDisplayDescription:
          type: string
          description: Resolved provider display blurb.
        endpoint:
          type: string
          description: Endpoint path.
          example: /search
        displayName:
          type: string
          description: Resolved endpoint display label. Always populated.
        displayDescription:
          type: string
          description: Resolved endpoint display blurb. May be empty.
        price:
          $ref: '#/components/schemas/PublicPrice'
        tags:
          type: array
          items:
            type: string
          description: User-facing tags (e.g. `["verified"]`). Always an array; empty when no tags are set on the indexed wrapper.
      required:
      - provider
      - providerDisplayName
      - endpoint
      - displayName
      - displayDescription
      - price
      - tags
    PublicPrice:
      type: object
      properties:
        type:
          type: string
        amount:
          anyOf:
          - type: object
            properties:
              value:
                type: number
              currency:
                type: string
                enum:
                - USD
            required:
            - value
            - currency
          - type: object
            properties:
              type:
                type: string
                enum:
                - PER_TOKEN
              amount:
                type: object
                properties:
                  value:
                    type: number
                  currency:
                    type: string
                    enum:
                    - USD
                required:
                - value
                - currency
              per:
                type: number
              unit:
                type: string
                enum:
                - token
                - character
            required:
            - type
            - amount
            - per
            - unit
        flatFee:
          type: object
          properties:
            value:
              type: number
            currency:
              type: string
              enum:
              - USD
          required:
          - value
          - currency
        period:
          type: object
          properties:
            unit:
              type: string
              enum:
              - MINUTE
              - DAY
              - MONTH
            count:
              type: integer
              exclusiveMinimum: 0
          required:
          - unit
          - count
        per:
          type: object
          properties:
            unit:
              type: string
              enum:
              - MINUTE
              - DAY
              - MONTH
            count:
              type: integer
              exclusiveMinimum: 0
          required:
          - unit
          - count
        selectors:
          type: array
          items:
            type: object
            properties:
              label:
                type: string
              key:
                type: string
              in:
                type: string
                enum:
                - body
                - queryParam
                - pathParam
            required:
            - label
            - key
            - in
        variants:
          type: array
          items:
            type: object
            properties:
              when:
                type: object
                additionalProperties:
                  anyOf:
                  - type: string
                  - type: number
              amount:
                anyOf:
                - type: object
                  properties:
                    value:
                      type: number
                    currency:
                      type: string
                      enum:
                      - USD
                  required:
                  - value
                  - currency
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - PER_TOKEN
                    amount:
                      type: object
                      properties:
                        value:
                          type: number
                        currency:
                          type: string
                          enum:
                          - USD
                      required:
                      - value
                      - currency
                    per:
                      type: number
                    unit:
                      type: string
                      enum:
                      - token
                      - character
                  required:
                  - type
                  - amount
                  - per
                  - unit
              label:
                type: string
            required:
            - when
            - amount
      required:
      - type
      - amount
      description: User-facing price (markup applied).
    PublicRegistryStats:
      type: object
      properties:
        endpointCount:
          type: integer
          minimum: 0
        providerCount:
          type: integer
          minimum: 0
      required:
      - endpointCount
      - providerCount
    PublicSearchResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PublicEndpointInfo'
        query:
          type: string
          description: Echo of the `q` input.
        count:
          type: integer
          minimum: 0
          description: Number of items on THIS page (not the total).
        cursor:
          type: string
          description: Cursor for the next page; absent when no more pages.
        total:
          type: integer
          minimum: 0
          description: Total endpoints matching the query, irrespective of pagination. Capped — see `totalIsCapped`.
        totalIsCapped:
          type: boolean
          description: '`true` when `total` met or exceeded the count cap; the real count is unknown but >= `total`.'
      required:
      - items
      - query
      - count
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: 'Monid API key (`Authorization: Bearer mk_...`) or Clerk-issued JWT.'