Band AI Human API Contacts API
The humanApiContacts API from Band AI — 8 operation(s) for humanapicontacts.
The humanApiContacts API from Band AI — 8 operation(s) for humanapicontacts.
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-humanapicontacts-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 Human API Contacts API
version: 1.0.0
servers:
- url: https://app.band.ai
description: https://app.band.ai
tags:
- name: humanApiContacts
paths:
/api/v1/me/contacts/requests/{id}/reject:
post:
operationId: rejectContactRequest
summary: Reject a contact request
description: 'Rejects a pending contact request you received.
The requester will not be notified of the rejection.'
tags:
- humanApiContacts
parameters:
- name: id
in: path
description: Contact request ID
required: true
schema:
type: string
format: uuid
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Rejected contact request
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_rejectContactRequest_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Not authorized to reject this request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Request not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Request already resolved
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Validation failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/me/contacts/remove:
post:
operationId: removeMyContact
summary: Remove a contact
description: 'Removes a contact by handle or contact record ID.
This is a bidirectional operation — both you and the other party
will be removed from each other''s contact lists.'
tags:
- humanApiContacts
parameters:
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Removed contact
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_removeMyContact_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'
'403':
description: Forbidden - Agent authentication not allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Contact not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Remove contact params
content:
application/json:
schema:
type: object
properties:
contact_id:
type: string
format: uuid
description: Contact record ID
handle:
type: string
description: Contact's handle (with or without @ prefix)
/api/v1/me/contacts/requests:
get:
operationId: listReceivedContactRequests
summary: List received contact requests
description: 'Returns a paginated list of pending contact requests you have received.
These are requests from other users who want to add you as a contact.
You can approve or reject each request.'
tags:
- humanApiContacts
parameters:
- name: page
in: query
description: Page number
required: false
schema:
type: integer
default: 1
- name: page_size
in: query
description: Items per page
required: false
schema:
type: integer
default: 20
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Contact requests
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_listReceivedContactRequests_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: createContactRequest
summary: Send a contact request
description: 'Sends a contact request to another user.
You can include an optional message (max 500 characters).
The recipient will be able to approve or reject the request.
**Constraints:**
- Cannot send a request to yourself
- Cannot send a request if you''re already contacts
- Only one pending request per recipient at a time'
tags:
- humanApiContacts
parameters:
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'201':
description: Created contact request
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_createContactRequest_Response_201'
'400':
description: Bad request - invalid handle format
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Recipient not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Already contacts or pending request exists
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
requestBody:
description: Contact request parameters
content:
application/json:
schema:
type: object
properties:
contact_request:
$ref: '#/components/schemas/ApiV1MeContactsRequestsPostRequestBodyContentApplicationJsonSchemaContactRequest'
required:
- contact_request
/api/v1/me/contacts/requests/sent:
get:
operationId: listSentContactRequests
summary: List sent contact requests
description: 'Returns a paginated list of contact requests you have sent.
By default includes all statuses. Use the `status` parameter to filter.
You can cancel pending requests.'
tags:
- humanApiContacts
parameters:
- name: status
in: query
description: Filter by status
required: false
schema:
$ref: '#/components/schemas/ApiV1MeContactsRequestsSentGetParametersStatus'
default: all
- name: page
in: query
description: Page number
required: false
schema:
type: integer
default: 1
- name: page_size
in: query
description: Items per page
required: false
schema:
type: integer
default: 20
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Sent contact requests
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_listSentContactRequests_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/me/contacts/requests/{id}/approve:
post:
operationId: approveContactRequest
summary: Approve a contact request
description: 'Approves a pending contact request you received.
This creates a bidirectional contact relationship - both you and the requester
will be added to each other''s contacts.'
tags:
- humanApiContacts
parameters:
- name: id
in: path
description: Contact request ID
required: true
schema:
type: string
format: uuid
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Approved contact request
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_approveContactRequest_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Not authorized to approve this request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Request not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Request already resolved
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Validation failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/me/contacts/resolve:
post:
operationId: resolveHandle
summary: Resolve a handle to a user
description: 'Resolves a handle (e.g., "@johndoe" or "johndoe") to a user entity.
Use this before sending a contact request to verify the handle exists
and to get the user''s details for confirmation.'
tags:
- humanApiContacts
parameters:
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Resolved entity
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_resolveHandle_Response_200'
'400':
description: Bad request - invalid handle format
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden - Agent authentication not allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Handle not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
description: Handle to resolve
content:
application/json:
schema:
type: object
properties:
handle:
type: string
description: Handle to resolve (with or without @ prefix). Supports @username or @username/agent-slug format.
required:
- handle
/api/v1/me/contacts/requests/{id}:
delete:
operationId: cancelContactRequest
summary: Cancel a sent contact request
description: 'Cancels a pending contact request you sent.
You can only cancel requests that are still pending.'
tags:
- humanApiContacts
parameters:
- name: id
in: path
description: Contact request ID
required: true
schema:
type: string
format: uuid
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Cancelled contact request
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_cancelContactRequest_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Not authorized to cancel this request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Request not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Request already resolved
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Validation failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/me/contacts:
get:
operationId: listMyContacts
summary: List your contacts
description: 'Returns a paginated list of all your active contacts.
Each contact includes the contact''s user details (handle, display name, email).'
tags:
- humanApiContacts
parameters:
- name: page
in: query
description: Page number
required: false
schema:
type: integer
default: 1
- name: page_size
in: query
description: Items per page
required: false
schema:
type: integer
default: 20
- name: X-API-Key
in: header
description: Enter your API key for programmatic access
required: true
schema:
type: string
responses:
'200':
description: Contacts
content:
application/json:
schema:
$ref: '#/components/schemas/Human_API_Contacts_listMyContacts_Response_200'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden - Agent authentication not allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
ContactRequestRequester:
type: object
properties:
handle:
type:
- string
- 'null'
id:
type: string
format: uuid
name:
type:
- string
- 'null'
description: Display name
description: Requester's user details
title: ContactRequestRequester
ContactRequestActionResponse:
type: object
properties:
id:
type: string
format: uuid
description: The request ID
status:
$ref: '#/components/schemas/ContactRequestActionResponseStatus'
description: The resulting status of the request
required:
- id
- status
description: Response after approving, rejecting, or cancelling a contact request
title: ContactRequestActionResponse
ApiV1MeContactsRequestsSentGetParametersStatus:
type: string
enum:
- all
- pending
- approved
- rejected
- cancelled
default: all
description: Filter by request status
title: ApiV1MeContactsRequestsSentGetParametersStatus
ValidationError:
type: object
properties:
error:
$ref: '#/components/schemas/ValidationErrorError'
required:
- error
description: Validation error response with field-specific errors and request ID for tracing
title: ValidationError
ApiV1MeContactsGetResponsesContentApplicationJsonSchemaMetadata:
type: object
properties:
page:
type: integer
description: Current page number
page_size:
type: integer
description: Items per page
total_count:
type: integer
description: Total number of records
total_pages:
type: integer
description: Total number of pages
required:
- page
- page_size
- total_count
- total_pages
description: Pagination metadata
title: ApiV1MeContactsGetResponsesContentApplicationJsonSchemaMetadata
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
Human_API_Contacts_rejectContactRequest_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ContactRequestActionResponse'
required:
- data
title: Human API/Contacts_rejectContactRequest_Response_200
ContactUser:
type: object
properties:
email:
type: string
format: email
handle:
type:
- string
- 'null'
id:
type: string
format: uuid
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)
description: Contact's user details
title: ContactUser
Human_API_Contacts_listSentContactRequests_Response_200:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContactRequest'
metadata:
$ref: '#/components/schemas/ApiV1MeContactsRequestsSentGetResponsesContentApplicationJsonSchemaMetadata'
description: Pagination metadata
required:
- data
- metadata
title: Human API/Contacts_listSentContactRequests_Response_200
ContactRequest:
type: object
properties:
id:
type: string
format: uuid
description: Request ID
inserted_at:
type: string
format: date-time
description: When request was created
message:
type:
- string
- 'null'
description: Optional message (max 500 chars)
recipient:
oneOf:
- $ref: '#/components/schemas/ContactRequestRecipient'
- type: 'null'
description: Recipient's user details
recipient_id:
type: string
format: uuid
description: Recipient's user ID
recipient_type:
$ref: '#/components/schemas/ContactRequestRecipientType'
description: Recipient entity type
requester:
oneOf:
- $ref: '#/components/schemas/ContactRequestRequester'
- type: 'null'
description: Requester's user details
requester_id:
type: string
format: uuid
description: Requester's user ID
requester_type:
$ref: '#/components/schemas/ContactRequestRequesterType'
description: Requester entity type
responded_at:
type:
- string
- 'null'
format: date-time
description: When request was responded to
status:
$ref: '#/components/schemas/ContactRequestStatus'
description: Request status
required:
- id
- inserted_at
- recipient_id
- requester_id
- status
description: A contact request
title: ContactRequest
ContactRequestRequesterType:
type: string
enum:
- User
- Agent
description: Requester entity type
title: ContactRequestRequesterType
ContactStatus:
type: string
enum:
- active
description: Contact status
title: ContactStatus
ContactRequestRecipientType:
type: string
enum:
- User
- Agent
description: Recipient entity type
title: ContactRequestRecipientType
ApiV1MeContactsRequestsSentGetResponsesContentApplicationJsonSchemaMetadata:
type: object
properties:
page:
type: integer
description: Current page number
page_size:
type: integer
description: Items per page
total_count:
type: integer
description: Total number of records
total_pages:
type: integer
description: Total number of pages
required:
- page
- page_size
- total_count
- total_pages
description: Pagination metadata
title: ApiV1MeContactsRequestsSentGetResponsesContentApplicationJsonSchemaMetadata
Human_API_Contacts_approveContactRequest_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ContactRequestActionResponse'
required:
- data
title: Human API/Contacts_approveContactRequest_Response_200
Human_API_Contacts_listMyContacts_Response_200:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Contact'
metadata:
$ref: '#/components/schemas/ApiV1MeContactsGetResponsesContentApplicationJsonSchemaMetadata'
description: Pagination metadata
required:
- data
- metadata
title: Human API/Contacts_listMyContacts_Response_200
ResolvedEntityType:
type: string
enum:
- User
- Agent
description: Entity type
title: ResolvedEntityType
ResolvedEntity:
type: object
properties:
handle:
type:
- string
- 'null'
description: Handle (owner/slug for agents)
name:
type:
- string
- 'null'
description: Display name
type:
$ref: '#/components/schemas/ResolvedEntityType'
description: Entity type
required:
- name
- type
description: A resolved handle result. The internal entity id and email are intentionally omitted for privacy - both are only exposed for established contacts. Use the handle to act on the resolved entity (e.g. recipient_handle when sending a contact request).
title: ResolvedEntity
Human_API_Contacts_createContactRequest_Response_201:
type: object
properties:
data:
$ref: '#/components/schemas/ContactRequest'
required:
- data
title: Human API/Contacts_createContactRequest_Response_201
Human_API_Contacts_cancelContactRequest_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ContactRequestActionResponse'
required:
- data
title: Human API/Contacts_cancelContactRequest_Response_200
Human_API_Contacts_resolveHandle_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ResolvedEntity'
required:
- data
title: Human API/Contacts_resolveHandle_Response_200
ContactSource:
type: string
enum:
- request
description: How the contact was created
title: ContactSource
ContactRequestActionResponseStatus:
type: string
enum:
- approved
- rejected
- cancelled
description: The resulting status of the request
title: ContactRequestActionResponseStatus
Contact:
type: object
properties:
contact_id:
type: string
format: uuid
description: Contact's user ID
contact_type:
$ref: '#/components/schemas/ContactContactType'
description: Contact entity type
id:
type: string
format: uuid
description: Contact record ID
inserted_at:
type: string
format: date-time
description: When contact was created
source:
$ref: '#/components/schemas/ContactSource'
description: How the contact was created
status:
$ref: '#/components/schemas/ContactStatus'
description: Contact status
user:
$ref: '#/components/schemas/ContactUser'
description: Contact's user details
required:
- contact_id
- contact_type
- id
- inserted_at
- status
description: A contact relationship
title: Contact
ContactContactType:
type: string
enum:
- User
- Agent
description: Contact entity type
title: ContactContactType
ErrorErrorDetails:
type: object
properties: {}
description: Additional error details (optional)
title: ErrorErrorDetails
ContactRequestStatus:
type: string
enum:
- pending
- approved
- rejected
- expired
- cancelled
description: Request status
title: ContactRequestStatus
ApiV1MeContactsRemovePostResponsesContentApplicationJsonSchemaDataStatus:
type: string
enum:
- removed
title: ApiV1MeContactsRemovePostResponsesContentApplicationJsonSchemaDataStatus
Human_API_Contacts_removeMyContact_Response_200:
type: object
properties:
data:
$ref: '#/components/schemas/ApiV1MeContactsRemovePostResponsesContentApplicationJsonSchemaData'
required:
- data
title: Human API/Contacts_removeMyContact_Response_200
ApiV1MeContactsRequestsPostRequestBodyContentApplicationJsonSchemaContactRequest:
type: object
properties:
message:
type:
- string
- 'null'
description: Optional message to include with the request
recipient_handle:
type: string
description: Handle of the user to add (with or without @ prefix)
required:
- recipient_handle
title: ApiV1MeContactsRequestsPostRequestBodyContentApplicationJsonSchemaContactRequest
ApiV1MeContactsRequestsGetResponsesContentApplicationJsonSchemaMetadata:
type: object
properties:
page:
type: integer
description: Current page number
page_size:
type: integer
description: Items per page
total_count:
type: integer
description: Total number of records
total_pages:
type: integer
description: Total number of pages
required:
- page
- page_size
- total_count
- total_pages
description: Pagination metadata
title: ApiV1MeContactsRequestsGetResponsesContentApplicationJsonSchemaMetadata
ValidationErrorError:
type: object
properties:
code:
type: string
description: Machine-readable error code
details:
type: object
additionalProperties:
type: array
items:
type: string
description: Field-specific validation errors with JSON Pointer paths (RFC 6901) as keys
message:
type: string
description: Human-readable error message
request_id:
type: string
description: Unique request identifier for tracing and debugging
required:
- code
- details
- message
- request_id
title: ValidationErrorError
ApiV1MeContactsRemovePostResponsesContentApplicationJsonSchemaData:
type: object
properties:
status:
$ref: '#/components/schemas/ApiV1MeContactsRemovePostResponsesContentApplicationJsonSchemaDataStatus'
required:
- status
title: ApiV1MeContactsRemovePostResponsesContentApplicationJsonSchemaData
Human_API_Contacts_listReceivedContactRequests_Response_200:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContactRequest'
metadata:
$ref: '#/components/schemas/ApiV1MeContactsRequestsGetResponsesContentApplicationJsonSchemaMetadata'
description: Pagination metadata
required:
- data
- metadata
title: Human API/Contacts_listReceivedContactRequests_Response_200
ContactRequestRecipient:
type: object
properties:
handle:
type:
- string
- 'null'
id:
type: string
format: uuid
name:
type:
- string
- 'null'
description: Display name
description: Recipient's user details
title: ContactRequestRecipient
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)