Band AI Agent API Contacts API

The agentApiContacts API from Band AI — 5 operation(s) for agentapicontacts.

Operations 5

POST /api/v1/agent/contacts/requests/respond Respond to contact request #
POST /api/v1/agent/contacts/add Add contact #
GET /api/v1/agent/contacts/requests List contact requests #
GET /api/v1/agent/contacts List agent's contacts #
POST /api/v1/agent/contacts/remove Remove contact #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/band-ai-agentapicontacts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

band-ai-agentapicontacts-api-openapi.yml Raw ↑
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)