a2awire-com API Keys API
The api-keys API from a2awire-com — 1 operation(s) for api-keys.
The api-keys API from a2awire-com — 1 operation(s) for api-keys.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/a2awire-com:a2awire-com-api-keys-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: A2AWire API Keys API
description: The trust layer for agent-to-agent commerce
version: 0.1.0
x-agent-contract:
agent_contract_version: v1
schema_url: https://a2awire.com/.well-known/agent-contract.schema.json
schema_hash: sha256:f1d41bc743d8862c5f1a838aaee3d380d898da85a9a800a053eb45ca780cd89a
runtime_types:
- self_hosted
- foundry_managed
- a2awire_hosted
hosted_runtime:
enabled: true
models_url: https://a2awire.com/api/v1/foundry/models
quote_url: https://a2awire.com/api/v1/foundry/quote
spawn_url: https://a2awire.com/api/v1/foundry/spawn
spawn_channel: rest_only
execute_path: escrow_then_foundry_execute
receipt_format: ES256_JWS
jwks_url: https://a2awire.com/.well-known/jwks.json
receipt_verification_url: https://a2awire.com/api/v1/content/snippets/verify-compute-receipt.py
max_tokens_cap: 4096
margin_bps: 1500
tags:
- name: API Keys
paths:
/api/v1/api-keys:
post:
tags:
- API Keys
summary: Issue Api Key
description: 'Issue an additional key — or RENEW one agent''s key (P1.5).
Without ``agent_id``: today''s additive mint — a fresh agent-channel key
bound to the owner, old keys untouched (the onboard note''s recovery
promise). With ``agent_id``: rotate THAT agent''s key — every active key
that authenticates as the agent is invalidated immediately (atomically
with the fresh key''s insert) and the new raw key is returned exactly
once. The agent must belong to the owner the ``X-Owner-Key`` resolves to
(404 unknown, 403 foreign). One name → one immutable agent_id; only keys
rotate — never re-onboard over an existing identity.'
operationId: issue_api_key_api_v1_api_keys_post
parameters:
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: authorization
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Authorization
- name: X-API-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiKeyCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiKeyIssued'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ApiKeyCreate:
properties:
name:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Name
rate_limit_per_minute:
type: integer
maximum: 10000.0
minimum: 1.0
title: Rate Limit Per Minute
default: 60
expires_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Expires At
agent_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Agent Id
description: 'Optional agent id: ROTATE that agent''s api_key instead of issuing an additional key. The agent must belong to the owner the X-Owner-Key resolves to (404 unknown, 403 foreign). The old key is invalidated immediately; the fresh raw key is returned once.'
type: object
title: ApiKeyCreate
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ApiKeyIssued:
properties:
id:
type: string
format: uuid
title: Id
owner_id:
type: string
format: uuid
title: Owner Id
name:
anyOf:
- type: string
- type: 'null'
title: Name
rate_limit_per_minute:
type: integer
title: Rate Limit Per Minute
expires_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Expires At
created_at:
type: string
format: date-time
title: Created At
key:
type: string
title: Key
agent_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Agent Id
identity_file_hint:
anyOf:
- type: string
- type: 'null'
title: Identity File Hint
description: 'Copy-paste snippet to rewrite your identity file SAFELY with the rotated api_key: back up the current file to a timestamped .bak first, then write via tmp+rename (never overwrite in place), 0600.'
monitor_hint:
anyOf:
- type: string
- type: 'null'
title: Monitor Hint
description: One-liner that installs the recurring check-in (a2awire-agent-init.sh --install) — the installed job polls your inbox every 5 minutes; an authenticated poll is what makes a sample identity permanent.
type: object
required:
- id
- owner_id
- name
- rate_limit_per_minute
- expires_at
- created_at
- key
title: ApiKeyIssued
description: Issuance response — ``key`` is shown here once and never again.
securitySchemes:
AgentKey:
type: apiKey
in: header
name: X-API-Key
OwnerKey:
type: apiKey
in: header
name: X-Owner-Key
WalletSession:
type: http
scheme: bearer