GET/api/v1/services
List all services with filter, field selection, and pagination controls.
Returns the main registry collection. Use query parameters to narrow results by category, KYC posture, geography, free-text search, or response shape.
example request
curl -s "https://cunicula.com/api/v1/services?agentMoney=1&fields=slug,name,kyc,trustLevel,agentMoney&limit=10"parameters
| name | in | type | required | description |
|---|---|---|---|---|
category | query | string | no | Filter by category slug or label. e.g. vpn |
kyc | query | string | no | Filter by KYC level or posture. e.g. none |
country | query | string | no | Filter by supported country code. e.g. US |
jurisdiction | query | string | no | Filter by service jurisdiction code. e.g. PA |
agentMoney | query | string | no | Set to 1, true, or yes to return only services with agent-money controls. e.g. 1 |
agentPrivacy | query | string | no | Set to 1, true, or yes to return only services with agent-run privacy-operation metadata. e.g. 1 |
q | query | string | no | Alias for search. If both q and search are sent, q wins. e.g. monero |
search | query | string | no | Legacy free-text match parameter. Use q for new clients. e.g. monero |
limit | query | integer | no | Maximum number of rows to return. e.g. 25 |
offset | query | integer | no | Pagination offset for large result sets. e.g. 0 |
sort | query | string | no | Field to sort by. e.g. trust_score |
order | query | string | no | Sort direction. e.g. desc |
fields | query | string | no | Comma-separated field projection. e.g. slug,name,kyc,jurisdiction |
example response
{
"data": [
{
"slug": "privacy-com",
"name": "Privacy.com",
"kyc": "full",
"trustLevel": "caution",
"agentMoney": {
"compatible": true,
"controlSurfaces": [
"api",
"cli",
"mcp",
"dashboard"
],
"protocols": [
"virtual-card",
"mcp",
"merchant-api"
],
"authorizationModel": [
"api-key",
"merchant-lock",
"category-lock",
"session-budget"
],
"settlementRail": [
"bank",
"card"
],
"autonomyLevel": 3,
"custodyModel": "issuer-custody",
"mandateLoggingRisk": "high",
"revocationQuality": "strong",
"spendLimits": true,
"merchantLock": true,
"categoryLock": true,
"pauseClose": true,
"transactionWebhooks": true,
"fundingSource": "bank-linked",
"identitySurface": "full-kyc",
"sourceLinks": [
{
"label": "Privacy.com homepage",
"href": "https://www.privacy.com/",
"scope": "provider"
},
{
"label": "Privacy agent controls",
"href": "https://agents.privacy.com/",
"scope": "controls"
}
],
"dataPath": [
"AI agent",
"Privacy API/CLI/MCP",
"Privacy.com",
"issuer bank",
"card network",
"merchant"
],
"notes": "Spend controls and card isolation, not no-KYC financial privacy.",
"protocolPrivacyNotes": "Legal identity, linked bank funding, issuer records, card-network records, API/MCP logs, and merchant data all remain in scope."
}
},
{
"slug": "bitrefill",
"name": "Bitrefill",
"kyc": "light",
"trustLevel": "verified",
"agentMoney": {
"compatible": true,
"controlSurfaces": [
"api",
"mcp",
"dashboard",
"manual"
],
"protocols": [
"mcp",
"merchant-api",
"gift-card"
],
"authorizationModel": [
"api-key",
"account-permission",
"human-approval",
"merchant-lock"
],
"settlementRail": [
"crypto",
"lightning",
"gift-card"
],
"autonomyLevel": 2,
"custodyModel": "merchant-credit",
"mandateLoggingRisk": "high",
"revocationQuality": "partial",
"fundingSource": "crypto-funded",
"identitySurface": "light-kyc",
"dataPath": [
"AI agent",
"Bitrefill API/MCP or account",
"crypto payment",
"Bitrefill order record",
"issuer",
"merchant redemption"
],
"notes": "Automatable gift-card and top-up bridge with account, order, issuer, and redemption metadata.",
"protocolPrivacyNotes": "Crypto funding can reduce bank-card exposure, but account, order, redemption, and merchant metadata stay linkable."
}
},
{
"slug": "btcpay-server",
"name": "BTCPay Server",
"kyc": "none",
"trustLevel": "verified",
"agentMoney": {
"compatible": true,
"controlSurfaces": [
"api",
"dashboard",
"manual"
],
"protocols": [
"merchant-api",
"manual"
],
"authorizationModel": [
"human-approval",
"policy-engine",
"wallet-grant"
],
"settlementRail": [
"crypto",
"lightning"
],
"autonomyLevel": 1,
"custodyModel": "self-custody",
"mandateLoggingRisk": "medium",
"revocationQuality": "strong",
"fundingSource": "self-hosted",
"identitySurface": "none",
"dataPath": [
"AI agent",
"approval wallet",
"BTCPay invoice",
"self-hosted server",
"Bitcoin or Lightning network",
"merchant record"
],
"notes": "Self-hosted invoice rail; network history, server logs, and merchant records still need controls.",
"protocolPrivacyNotes": "Keep seed material and broad wallet authority out of the agent runtime."
}
},
{
"slug": "shopinbit",
"name": "SHOPINBIT",
"kyc": "none",
"trustLevel": "verified",
"agentMoney": {
"compatible": true,
"controlSurfaces": [
"manual"
],
"protocols": [
"manual"
],
"authorizationModel": [
"human-approval"
],
"settlementRail": [
"crypto",
"manual-invoice"
],
"autonomyLevel": 1,
"custodyModel": "none",
"mandateLoggingRisk": "medium",
"revocationQuality": "weak",
"fundingSource": "crypto-funded",
"identitySurface": "none",
"dataPath": [
"AI agent",
"operator approval",
"SHOPINBIT order",
"crypto payment",
"fulfillment partner",
"merchant record"
],
"notes": "Human-approved crypto concierge spend; delivery and fulfillment metadata can still identify the buyer.",
"protocolPrivacyNotes": "Shipping, concierge notes, invoice details, timing, and product choice can identify the buyer."
}
}
],
"meta": {
"total": 4,
"limit": 10,
"offset": 0,
"sort": "name",
"order": "asc",
"filters": {
"agentMoney": "1"
},
"fields": [
"slug",
"name",
"kyc",
"trustLevel",
"agentMoney"
],
"api_version": "v1",
"powered_by": "cunicula.com"
}
}