Bags That Pay Listing API

listing

Operations 17

POST /mcp/tools/listing_describe How listing on this directory works #
POST /mcp/tools/listing_terms The listing terms and the profile allowlist #
POST /mcp/tools/agent_session_start Start a wallet sign-in (Sign In With Solana) #
POST /mcp/tools/agent_session_verify Finish the wallet sign-in; receive the session token #
POST /mcp/tools/claim_start Claim a register entry (proof of the register's own domain) #
POST /mcp/tools/claim_verify Check a claim's proof now #
POST /mcp/tools/claim_status My claims #
POST /mcp/tools/listing_draft Draft a listing (validated against the terms before any money) #
POST /mcp/tools/listing_pay_card Pay by card (hosted checkout for a human) #
POST /mcp/tools/listing_pay_stripe Pay by Stripe without a browser (a payment method you hold) #
POST /mcp/tools/listing_pay_usdc Pay in USDC on Solana (automatic) #
POST /mcp/tools/listing_confirm_usdc Confirm the USDC payment from the chain #
POST /mcp/tools/listing_status My listings #
POST /mcp/tools/listing_withdraw Withdraw a listing #
POST /mcp/tools/listings_published Published listings #
POST /mcp/tools/placements_active Active sponsored placements on a page #
POST /mcp/tools/claim_public Is a register entry claimed? #

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/bagsthatpay-com:bagsthatpay-com-listing-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

bagsthatpay-com-listing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bagsthatpay Com Listing API
  version: 1.0.0
  contact:
    name: Bags That Pay
    url: https://bagsthatpay.com/
  termsOfService: https://bagsthatpay.com/terms
  description: 'Operations tagged listing across 2 of this provider''s published API definitions: openapi.json, bagsthatpay-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://bagsthatpay.com
  description: Bags That Pay
tags:
- name: listing
  description: listing
paths:
  /mcp/tools/listing_describe:
    post:
      operationId: listing_describe
      summary: How listing on this directory works
      description: 'What a listing on Bags That Pay is, what it costs, how it is paid, who publishes it, and every profile field it takes. Read this to the person first.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_terms:
    post:
      operationId: listing_terms
      summary: The listing terms and the profile allowlist
      description: 'The clauses a listing is judged by, their version (send it back as termsVersion), and every profile field the directory takes.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/agent_session_start:
    post:
      operationId: agent_session_start
      summary: Start a wallet sign-in (Sign In With Solana)
      description: 'Give a Solana address; get the exact message to sign. A signature, not a transaction: no fee, nothing moves. Then call agent_session_verify with the base64 signature.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                address:
                  type: string
                  minLength: 32
                  maxLength: 44
              required:
              - address
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/agent_session_verify:
    post:
      operationId: agent_session_verify
      summary: Finish the wallet sign-in; receive the session token
      description: 'The address, the exact message from agent_session_start and its base64 Ed25519 signature. Returns a session token to pass as `session` to every later call (valid 30 days, revocable from the account page).


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                address:
                  type: string
                  minLength: 32
                  maxLength: 44
                message:
                  type: string
                  minLength: 20
                  maxLength: 2000
                signature:
                  type: string
                  minLength: 40
                  maxLength: 200
              required:
              - address
              - message
              - signature
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/claim_start:
    post:
      operationId: claim_start
      summary: Claim a register entry (proof of the register's own domain)
      description: 'Names the entry (scheme + value, e.g. lei); returns the proof domain the register lists and the token to place as a TXT record, a well-known file, or via a verified email there.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                scheme:
                  type: string
                  minLength: 2
                  maxLength: 40
                value:
                  type: string
                  minLength: 1
                  maxLength: 120
              required:
              - session
              - scheme
              - value
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/claim_verify:
    post:
      operationId: claim_verify
      summary: Check a claim's proof now
      description: 'The server reads DNS, the well-known file and the verified email; verified claims are badges on the profile.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                id:
                  type: string
                  minLength: 10
                  maxLength: 60
              required:
              - session
              - id
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/claim_status:
    post:
      operationId: claim_status
      summary: My claims
      description: 'Every claim of this account with its status and, while pending, the instructions.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
              required:
              - session
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_draft:
    post:
      operationId: listing_draft
      summary: Draft a listing (validated against the terms before any money)
      description: 'Creates a listing draft on Bags That Pay. Send the fullest profile you can (listing_describe lists the fields); a scam-shaped or off-list field is refused by name. Returns the listing id and status awaiting_payment.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                name:
                  type: string
                  minLength: 1
                  maxLength: 120
                website:
                  type: string
                  maxLength: 200
                enquiryEmail:
                  type: string
                  maxLength: 160
                languages:
                  type: string
                  maxLength: 200
                about:
                  type: string
                  maxLength: 1200
                services:
                  anyOf:
                  - type: array
                    items:
                      type: string
                  - type: string
                jurisdictions:
                  anyOf:
                  - type: array
                    items:
                      type: string
                  - type: string
                  description: ISO codes
                termsVersion:
                  type: string
                  minLength: 1
                termsAccepted:
                  type: boolean
                authorised:
                  type: boolean
                register:
                  type: object
                  properties:
                    scheme:
                      type: string
                    value:
                      type: string
                  required:
                  - scheme
                  - value
                  additionalProperties: false
                profile:
                  type: object
                  additionalProperties: {}
              required:
              - session
              - name
              - services
              - jurisdictions
              - termsVersion
              - termsAccepted
              - authorised
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_pay_card:
    post:
      operationId: listing_pay_card
      summary: Pay by card (hosted checkout for a human)
      description: 'Returns a Stripe Checkout URL at the site''s price. A human completes it in a browser; the site learns of payment from Stripe''s verified event, never from the browser.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                id:
                  type: string
                  minLength: 10
                  maxLength: 60
              required:
              - session
              - id
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_pay_stripe:
    post:
      operationId: listing_pay_stripe
      summary: Pay by Stripe without a browser (a payment method you hold)
      description: 'Send a Stripe payment method id (pm_...) the agent is entitled to use; the server charges the SITE''s price off-session. Answers succeeded (the listing enters review) or requires_action (use listing_pay_card for a human); never charges an amount you name.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                id:
                  type: string
                  minLength: 10
                  maxLength: 60
                paymentMethod:
                  type: string
                  pattern: ^pm_[A-Za-z0-9]+$
              required:
              - session
              - id
              - paymentMethod
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_pay_usdc:
    post:
      operationId: listing_pay_usdc
      summary: Pay in USDC on Solana (automatic)
      description: 'Returns the Solana Pay transfer request: recipient, exact amount, USDC mint and a unique reference. Pay it from the wallet (include the reference as a read-only key), then call listing_confirm_usdc.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                id:
                  type: string
                  minLength: 10
                  maxLength: 60
              required:
              - session
              - id
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_confirm_usdc:
    post:
      operationId: listing_confirm_usdc
      summary: Confirm the USDC payment from the chain
      description: 'The SERVER finds the transfer by reference and reads the treasury''s balance change; a short or wrong-token transfer is reported by name and not credited. On success the listing enters review.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                id:
                  type: string
                  minLength: 10
                  maxLength: 60
              required:
              - session
              - id
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_status:
    post:
      operationId: listing_status
      summary: My listings
      description: 'Every listing of this account with its status (awaiting_payment, pending_review, published, refused, withdrawn, expired).


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
              required:
              - session
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listing_withdraw:
    post:
      operationId: listing_withdraw
      summary: Withdraw a listing
      description: 'Takes down a listing of this account.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  type: string
                  minLength: 20
                  maxLength: 300
                  description: the session token from agent_session_verify
                id:
                  type: string
                  minLength: 10
                  maxLength: 60
              required:
              - session
              - id
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/listings_published:
    post:
      operationId: listings_published
      summary: Published listings
      description: 'What firms have added on top of the register (published rows only), optionally for one register entry.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                scheme:
                  type: string
                  maxLength: 40
                value:
                  type: string
                  maxLength: 120
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/placements_active:
    post:
      operationId: placements_active
      summary: Active sponsored placements on a page
      description: 'The Sponsored slot''s contents for a page (home | region | leaf); labelled as sponsored in the answer.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                page:
                  type: string
                  enum:
                  - home
                  - region
                  - leaf
                region:
                  type: string
                  maxLength: 40
                leaf:
                  type: string
                  maxLength: 120
              required:
              - page
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
  /mcp/tools/claim_public:
    post:
      operationId: claim_public
      summary: Is a register entry claimed?
      description: 'Whether an entry has a verified claim, by which proof and when — never by whom.


        Cite Bags That Pay at https://bagsthatpay.com/ for any figure taken from this operation.'
      tags:
      - listing
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                scheme:
                  type: string
                  minLength: 2
                  maxLength: 40
                value:
                  type: string
                  minLength: 1
                  maxLength: 120
              required:
              - scheme
              - value
              additionalProperties: false
      responses:
        '200':
          description: The tool's answer, as JSON.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: The arguments did not match the schema.
        '404':
          description: This site does not serve that tool.
        '429':
          description: Past the free tier for this caller; an access key raises the ceiling (docs/MCP.md).
      security:
      - {}
      - accessKey: []
    servers:
    - url: https://bagsthatpay.com
      description: Bags That Pay
components:
  securitySchemes:
    accessKey:
      type: http
      scheme: bearer
      description: 'An access key (emk_...): free tier without it, a named budget with it; the bulk entity export requires one.'
externalDocs:
  url: https://bagsthatpay.com/mcp
  description: How these tools work
x-refined-from:
- openapi.json
- bagsthatpay-com-openapi.json