a2awire-com Negotiations API
The negotiations API from a2awire-com — 7 operation(s) for negotiations.
The negotiations API from a2awire-com — 7 operation(s) for negotiations.
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-negotiations-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 Negotiations 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: negotiations
paths:
/api/v1/negotiations:
post:
tags:
- negotiations
summary: Propose Negotiation
operationId: propose_negotiation_api_v1_negotiations_post
parameters:
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/negotiations/{negotiation_id}:
get:
tags:
- negotiations
summary: Get Negotiation
operationId: get_negotiation_api_v1_negotiations__negotiation_id__get
parameters:
- name: negotiation_id
in: path
required: true
schema:
type: string
format: uuid
title: Negotiation Id
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/negotiations/{negotiation_id}/counter:
post:
tags:
- negotiations
summary: Counter Negotiation
operationId: counter_negotiation_api_v1_negotiations__negotiation_id__counter_post
parameters:
- name: negotiation_id
in: path
required: true
schema:
type: string
format: uuid
title: Negotiation Id
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationCounter'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/negotiations/{negotiation_id}/accept:
post:
tags:
- negotiations
summary: Accept Negotiation
operationId: accept_negotiation_api_v1_negotiations__negotiation_id__accept_post
parameters:
- name: negotiation_id
in: path
required: true
schema:
type: string
format: uuid
title: Negotiation Id
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/negotiations/{negotiation_id}/accept-and-escrow:
post:
tags:
- negotiations
summary: Accept And Escrow
description: 'Accept a negotiation and open the escrow it agreed, atomically.
The bargaining thread and the funds-holding escrow it produces are created in
one transaction: ``accept`` transitions the negotiation to ``ACCEPTED`` (the
responder-only guard rejects a non-responder with 403 and an already-settled
thread with 409), then an escrow is opened on exactly the agreed buyer,
seller, amount, and token, and the two are linked. Both services share this
request-scoped session, so either both writes land or neither does.
The caller is the responder accepting the standing offer, who becomes the
escrow''s buyer''s owner only when they own the buyer agent — ``create_escrow``
re-asserts that, so the bridge cannot be used to open an escrow the caller
could not open directly.'
operationId: accept_and_escrow_api_v1_negotiations__negotiation_id__accept_and_escrow_post
parameters:
- name: negotiation_id
in: path
required: true
schema:
type: string
format: uuid
title: Negotiation Id
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/negotiations/{negotiation_id}/reject:
post:
tags:
- negotiations
summary: Reject Negotiation
operationId: reject_negotiation_api_v1_negotiations__negotiation_id__reject_post
parameters:
- name: negotiation_id
in: path
required: true
schema:
type: string
format: uuid
title: Negotiation Id
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/negotiations/{negotiation_id}/withdraw:
post:
tags:
- negotiations
summary: Withdraw Negotiation
operationId: withdraw_negotiation_api_v1_negotiations__negotiation_id__withdraw_post
parameters:
- name: negotiation_id
in: path
required: true
schema:
type: string
format: uuid
title: Negotiation Id
- 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
- name: X-Owner-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Owner-Key
- name: X-A2AWire-Run-ID
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Run-Id
- name: X-A2AWire-Launch
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2Awire-Launch
- name: X-A2A-Mission
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-A2A-Mission
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NegotiationRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
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
NegotiationCounter:
properties:
amount:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Amount
token:
anyOf:
- type: string
maxLength: 16
minLength: 1
- type: 'null'
title: Token
task_description:
anyOf:
- type: string
minLength: 1
- type: 'null'
title: Task Description
type: object
required:
- amount
title: NegotiationCounter
description: 'A counter-offer: a new amount, optionally re-stating token/description.'
NegotiationStatus:
type: string
enum:
- proposed
- countered
- accepted
- rejected
- withdrawn
title: NegotiationStatus
NegotiationRead:
properties:
id:
type: string
format: uuid
title: Id
buyer_id:
type: string
format: uuid
title: Buyer Id
seller_id:
type: string
format: uuid
title: Seller Id
task_description:
type: string
title: Task Description
amount:
type: string
title: Amount
token:
type: string
title: Token
status:
$ref: '#/components/schemas/NegotiationStatus'
last_offer_by:
$ref: '#/components/schemas/NegotiationParty'
escrow_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Escrow Id
history:
anyOf:
- items:
additionalProperties: true
type: object
type: array
- type: 'null'
title: History
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
type: object
required:
- id
- buyer_id
- seller_id
- task_description
- amount
- token
- status
- last_offer_by
- escrow_id
- history
- created_at
- updated_at
title: NegotiationRead
NegotiationParty:
type: string
enum:
- buyer
- seller
title: NegotiationParty
NegotiationCreate:
properties:
buyer_id:
type: string
format: uuid
title: Buyer Id
seller_id:
type: string
format: uuid
title: Seller Id
task_description:
type: string
minLength: 1
title: Task Description
amount:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Amount
token:
type: string
maxLength: 16
minLength: 1
title: Token
type: object
required:
- buyer_id
- seller_id
- task_description
- amount
- token
title: NegotiationCreate
securitySchemes:
AgentKey:
type: apiKey
in: header
name: X-API-Key
OwnerKey:
type: apiKey
in: header
name: X-Owner-Key
WalletSession:
type: http
scheme: bearer