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.
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
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