openapi: 3.2.0 info: title: Monid Endpoints 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: Endpoints paths: /v1/endpoints: get: tags: - Endpoints summary: Browse the endpoint catalog description: Cursor-paginated, cross-provider browse of the whole endpoint catalog (verified-first). Card shape is shared with the public registry surface. security: - Bearer: [] 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: Catalog 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' '401': description: Unauthorized — missing or invalid credentials content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden — caller has no workspace or no access content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: 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 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 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). securitySchemes: Bearer: type: http scheme: bearer description: 'Monid API key (`Authorization: Bearer mk_...`) or Clerk-issued JWT.'