---
title: "List x402 services for an application"
method: GET
path: "/v1/applications/{applicationId}/x402/services"
tags: ["x402 Discovery"]
---

# List x402 services for an application

`GET /v1/applications/{applicationId}/x402/services`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/applications/{applicationId}/x402/services`
- Auth: one of:
  - API key in header `X-Api-Key`
  - `bearer` (a scheme the document does not define)

The x402 catalogue seen from one application.

- `authorized`: the service host passes both the organization and the application destination rules.
- `orgRule`: state of the organization rule alone for this host (drives the admin toggle).
- `usage`: agent wallets of the application that paid this service this month, and the total.
- `authorized=true` keeps only authorized services; without `search`, services paid this month come first, by spend.

Authorization reflects the organization and application destination rules only: a rule set on an individual agent wallet can still refuse a payment to an authorized service.

## Path parameters

- `applicationId` string, uuid, required

## Query parameters

- `search` string
- `network` string
- `tag` string
- `currentPage` integer
- `pageSize` integer
- `authorized` string
- `sources` string[]

## Response `200`

- X402ServicesPageDto
  - `data` object[], required
    - `id` string, uuid, required: Entity UUID
    - `createdAt` string, date-time, required: Creation date (ISO 8601)
    - `updatedAt` string, date-time, required: Last update date (ISO 8601)
    - `resource` string, required: Absolute URL of the x402-protected service endpoint.
    - `serviceName` string, nullable: Human-friendly service name from the upstream directory.
    - `description` string, nullable: Vendor-supplied description of what the service does.
    - `iconUrl` string, nullable: Absolute URL of the service icon.
    - `type` string, required: Resource transport type from the directory.
    - `x402Version` integer, required: x402 protocol version the service implements.
    - `tags` string[], required: Free-form keywords from the directory; drive tag filter + search.
    - `networks` string[], required: Distinct CAIP-2 chain ids derived from accepts[].network; drives the network filter.
    - `accepts` object[], required: Payment options the service accepts (one per scheme/network/asset).
      - `scheme` string, required: x402 payment scheme the service uses for this option.
      - `network` string, required: CAIP-2 chain id the payment settles on.
      - `amount` string, required: Price in the asset base units as a decimal string (preserves bigint precision). Divide by 10^assetDecimals for the human amount.
      - `asset` string, required: ERC-20 token contract address used to pay.
      - `payTo` string, required: Recipient address the payment is sent to.
      - `maxTimeoutSeconds` integer, required: Seconds the payer has to settle before the quote expires.
    - `httpMethod` string, nullable: HTTP method the endpoint answers on, from the directory metadata. Probing a POST-only service with a GET never reaches its x402 middleware: it answers 404/405 instead of the payment terms.
    - `requestHint` object, nullable: Vendor-supplied call hint (method, bodyType, example body, query and path params). The shape varies per service — treat it as an opaque hint, not a contract.
    - `quality` object, nullable: Usage/popularity stats from the directory. Null when unreported.
      - `l30DaysTotalCalls` integer, nullable: Paid calls in the last 30 days (popularity signal).
      - `l30DaysUniquePayers` integer, nullable: Distinct paying wallets in the last 30 days.
      - `lastCalledAt` string, nullable: ISO 8601 timestamp of the most recent paid call.
    - `source` 'coinbase' | 'orthogonal', required: Upstream directory this entry is mirrored from.
    - `host` string, required: Lowercase host of `resource`; destination rules match on it.
    - `via` string, nullable: Gateway that resells the provider and collects the payment (e.g. Orthogonal). Null when the provider is paid directly.
    - `priceVariable` boolean, required: True when the price is set per request rather than by the directory: `accepts` is then empty and x402_info gives the actual price.
    - `payable` boolean, required: Whether the service offers a payment scheme the Keyban agent wallet can settle (today: exact). Unpayable services are listed last.
    - `operation` string, nullable: Short endpoint label from the last path segments (gateway slug and version prefix dropped).
    - `authorized` boolean, required: True when the host passes the organization and application destination rules. A per-agent-wallet rule can still refuse a payment.
    - `orgRule` 'allowed' | 'denied' | 'covered' | 'none', required: State of the organization destination rule for this host: listed as allowed or denied, decided by a broader domain entry (covered), or no organization rule (none).
    - `blockedByApplication` boolean, required: True when the application rule alone refuses this host.
    - `usage` object, nullable, required: This month spend and agents; null when unused.
      - `agents` object[], required: Agent wallets of the application that paid this service this month.
        - `id` string, required
        - `label` string, required
      - `amountRef` string, required: Total paid this month, in centi-units of the application display currency.
  - `total` integer, required
  - `summary` object, required: Catalogue-wide counters, independent of the page filters.
    - `catalogueTotal` integer, required: Number of services in the whole x402 catalogue.
    - `authorizedTotal` integer, nullable, required: Number of catalogue services explicitly allowed by the organization rule; null when no allow rule applies.
    - `gatewayProviders` object, required: Distinct provider count per gateway (via), excluding the Coinbase directory.

## Other responses

- `404`: Unknown application.

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
