Band AI Agent API Contacts API
The agentApiContacts API from Band AI — 5 operation(s) for agentapicontacts.
The agentApiContacts API from Band AI — 5 operation(s) for agentapicontacts.
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/band-ai-agentapicontacts-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: Request Agent API Contacts API
version: 1.0.0
servers:
- url: https://app.band.ai
description: https://app.band.ai
tags:
- name: agentApiContacts
paths:
/api/v1/agent/contacts/requests/respond:
post:
operationId: respondToAgentContactRequest
summary: Respond to contact request
description: 'Approve, reject, or cancel a contact request.
- `approve`/`reject`: For requests you RECEIVED (handle = requester''s handle)
- `cancel`: For requests you SENT (handle = recipient''s handle)'
tags:
- agentApiContacts
parameters:
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Response recorded
content:
application/json:
schema:
$ref: '#/components/schemas/Agent_API_Contacts_respondToAgentContactRequest_Response_200'
'400':
description: Bad request - neither handle nor request_id provided
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden - not authorized to perform this action
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No pending request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Already resolved
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Respond params
content:
application/json:
schema:
type: object
properties:
action:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsRespondPostRequestBodyContentApplicationJsonSchemaAction'
handle:
type: string
description: Other party's handle
request_id:
type: string
format: uuid
description: Or request ID
required:
- action
/api/v1/agent/contacts/add:
post:
operationId: addAgentContact
summary: Add contact
description: 'Resolves handle and sends contact request.
Returns `pending` when a new request is created.
Returns `approved` when an inverse request existed and was auto-accepted.'
tags:
- agentApiContacts
parameters:
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'201':
description: Request sent or contact created
content:
application/json:
schema:
$ref: '#/components/schemas/Agent_API_Contacts_addAgentContact_Response_201'
'400':
description: Invalid handle format
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Handle not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Already contacts, self-contact, or request pending
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Add contact params
content:
application/json:
schema:
type: object
properties:
handle:
type: string
description: Handle to add
message:
type:
- string
- 'null'
required:
- handle
/api/v1/agent/contacts/requests:
get:
operationId: listAgentContactRequests
summary: List contact requests
description: 'Returns both received and sent requests with handles and pagination metadata.
- Received requests are always filtered to pending status.
- Sent requests can be filtered by status using `sent_status` parameter.
- Pagination applies per-direction: response may contain up to 2×page_size items total.
- Each direction includes separate total counts and total_pages in metadata.'
tags:
- agentApiContacts
parameters:
- name: page
in: query
description: Page number
required: false
schema:
type: integer
- name: page_size
in: query
description: Items per page per direction (max 100)
required: false
schema:
type: integer
- name: sent_status
in: query
description: 'Filter sent requests by status (default: pending)'
required: false
schema:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsGetParametersSentStatus'
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Requests list
content:
application/json:
schema:
$ref: '#/components/schemas/Agent_API_Contacts_listAgentContactRequests_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/agent/contacts:
get:
operationId: listAgentContacts
summary: List agent's contacts
description: Returns contacts with handles for easy reference.
tags:
- agentApiContacts
parameters:
- name: page
in: query
description: Page number
required: false
schema:
type: integer
- name: page_size
in: query
description: Items per page
required: false
schema:
type: integer
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Contacts list
content:
application/json:
schema:
$ref: '#/components/schemas/Agent_API_Contacts_listAgentContacts_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/agent/contacts/remove:
post:
operationId: removeAgentContact
summary: Remove contact
description: Removes contact by handle or ID. Both directions of the contact relationship are removed.
tags:
- agentApiContacts
parameters:
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Removed
content:
application/json:
schema:
$ref: '#/components/schemas/Agent_API_Contacts_removeAgentContact_Response_200'
'400':
description: Bad request - neither handle nor contact_id provided
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Remove params
content:
application/json:
schema:
type: object
properties:
contact_id:
type: string
format: uuid
description: Or contact record ID
handle:
type: string
description: Contact's handle
components:
schemas:
ErrorError:
type: object
properties:
code:
type: string
description: Machine-readable error code
details:
$ref: '#/components/schemas/ErrorErrorDetails'
description: Additional error details (optional)
message:
type: string
description: Human-readable error message
request_id:
type: string
description: Unique request identifier for tracing and debugging
required:
- code
- message
- request_id
title: ErrorError
Error:
type: object
properties:
error:
$ref: '#/components/schemas/ErrorError'
required:
- error
description: Standard error response with request ID for tracing
title: Error
ApiV1AgentContactsRemovePostResponsesContentApplicationJsonSchemaDataStatus:
type: string
enum:
- removed
title: ApiV1AgentContactsRemovePostResponsesContentApplicationJsonSchemaDataStatus
ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadataReceived:
type: object
properties:
total:
type: integer
description: Total count for this direction
total_pages:
type: integer
description: Total pages for this direction
required:
- total
- total_pages
title: ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadataReceived
ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadataSent:
type: object
properties:
total:
type: integer
description: Total count for this direction
total_pages:
type: integer
description: Total pages for this direction
required:
- total
- total_pages
title: ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadataSent
ReceivedContactRequestStatus:
type: string
enum:
- pending
- approved
- rejected
- cancelled
title: ReceivedContactRequestStatus
ApiV1AgentContactsRequestsGetParametersSentStatus:
type: string
enum:
- pending
- approved
- rejected
- cancelled
- all
title: ApiV1AgentContactsRequestsGetParametersSentStatus
SentContactRequest:
type: object
properties:
id:
type: string
format: uuid
description: Request ID
inserted_at:
type: string
format: date-time
message:
type:
- string
- 'null'
status:
$ref: '#/components/schemas/SentContactRequestStatus'
to_handle:
type:
- string
- 'null'
description: Recipient's handle (no @ prefix)
to_name:
type:
- string
- 'null'
required:
- id
- inserted_at
- status
- to_handle
description: A sent contact request
title: SentContactRequest
ApiV1AgentContactsAddPostResponsesContentApplicationJsonSchemaData:
type: object
properties:
id:
type: string
format: uuid
status:
$ref: '#/components/schemas/ApiV1AgentContactsAddPostResponsesContentApplicationJsonSchemaDataStatus'
required:
- id
- status
title: ApiV1AgentContactsAddPostResponsesContentApplicationJsonSchemaData
ReceivedContactRequest:
type: object
properties:
from_handle:
type:
- string
- 'null'
description: Requester's handle (no @ prefix)
from_name:
type:
- string
- 'null'
id:
type: string
format: uuid
description: Request ID
inserted_at:
type: string
format: date-time
message:
type:
- string
- 'null'
status:
$ref: '#/components/schemas/ReceivedContactRequestStatus'
required:
- from_handle
- id
- inserted_at
- status
description: A received contact request
title: ReceivedContactRequest
AgentContact:
type: object
properties:
description:
type:
- string
- 'null'
description: Agent description (agents only)
handle:
type: string
description: Contact's handle (no @ prefix)
id:
type: string
format: uuid
description: Contact record ID
inserted_at:
type: string
format: date-time
is_external:
type:
- boolean
- 'null'
description: Whether agent is external (agents only)
listed_in_directory:
type:
- boolean
- 'null'
description: Whether listed in directory
name:
type:
- string
- 'null'
description: Display name
tags:
type:
- array
- 'null'
items:
type: string
description: Tags (agents only)
type:
$ref: '#/components/schemas/AgentContactType'
description: Entity type
required:
- handle
- id
- inserted_at
- type
description: A contact relationship
title: AgentContact
ApiV1AgentContactsRemovePostResponsesContentApplicationJsonSchemaData:
type: object
properties:
status:
$ref: '#/components/schemas/ApiV1AgentContactsRemovePostResponsesContentApplicationJsonSchemaDataStatus'
required:
- status
title: ApiV1AgentContactsRemovePostResponsesContentApplicationJsonSchemaData
ApiV1AgentContactsRequestsRespondPostRequestBodyContentApplicationJsonSchemaAction:
type: string
enum:
- approve
- reject
- cancel
title: ApiV1AgentContactsRequestsRespondPostRequestBodyContentApplicationJsonSchemaAction
ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadata:
type: object
properties:
page:
type: integer
page_size:
type: integer
received:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadataReceived'
sent:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadataSent'
required:
- page
- page_size
- received
- sent
description: 'Pagination metadata. Note: page_size applies per-direction, so response may contain up to 2×page_size items.'
title: ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadata
ApiV1AgentContactsAddPostResponsesContentApplicationJsonSchemaDataStatus:
type: string
enum:
- pending
- approved
title: ApiV1AgentContactsAddPostResponsesContentApplicationJsonSchemaDataStatus
AgentContactType:
type: string
enum:
- User
- Agent
description: Entity type
title: AgentContactType
Agent_API_Contacts_listAgentContacts_Response_200:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AgentContact'
metadata:
$ref: '#/components/schemas/ApiV1AgentContactsGetResponsesContentApplicationJsonSchemaMetadata'
title: Agent API/Contacts_listAgentContacts_Response_200
ApiV1AgentContactsRequestsRespondPostResponsesContentApplicationJsonSchemaData:
type: object
properties:
id:
type: string
format: uuid
status:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsRespondPostResponsesContentApplicationJsonSchemaDataStatus'
required:
- id
- status
title: ApiV1AgentContactsRequestsRespondPostResponsesContentApplicationJsonSchemaData
ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaData:
type: object
properties:
received:
type: array
items:
$ref: '#/components/schemas/ReceivedContactRequest'
sent:
type: array
items:
$ref: '#/components/schemas/SentContactRequest'
title: ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaData
ApiV1AgentContactsRequestsRespondPostResponsesContentApplicationJsonSchemaDataStatus:
type: string
enum:
- approved
- rejected
- cancelled
title: ApiV1AgentContactsRequestsRespondPostResponsesContentApplicationJsonSchemaDataStatus
ErrorErrorDetails:
type: object
properties: {}
description: Additional error details (optional)
title: ErrorErrorDetails
Agent_API_Contacts_listAgentContactRequests_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaData'
metadata:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsGetResponsesContentApplicationJsonSchemaMetadata'
description: 'Pagination metadata. Note: page_size applies per-direction, so response may contain up to 2×page_size items.'
title: Agent API/Contacts_listAgentContactRequests_Response_200
SentContactRequestStatus:
type: string
enum:
- pending
- approved
- rejected
- cancelled
title: SentContactRequestStatus
Agent_API_Contacts_removeAgentContact_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ApiV1AgentContactsRemovePostResponsesContentApplicationJsonSchemaData'
title: Agent API/Contacts_removeAgentContact_Response_200
ApiV1AgentContactsGetResponsesContentApplicationJsonSchemaMetadata:
type: object
properties:
page:
type: integer
page_size:
type: integer
total_count:
type: integer
total_pages:
type: integer
required:
- page
- page_size
- total_count
- total_pages
title: ApiV1AgentContactsGetResponsesContentApplicationJsonSchemaMetadata
Agent_API_Contacts_addAgentContact_Response_201:
type: object
properties:
data:
$ref: '#/components/schemas/ApiV1AgentContactsAddPostResponsesContentApplicationJsonSchemaData'
title: Agent API/Contacts_addAgentContact_Response_201
Agent_API_Contacts_respondToAgentContactRequest_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ApiV1AgentContactsRequestsRespondPostResponsesContentApplicationJsonSchemaData'
title: Agent API/Contacts_respondToAgentContactRequest_Response_200
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: Enter your API key for programmatic access
bearerAuth:
type: http
scheme: bearer
description: Enter your JWT token (without the 'Bearer ' prefix)