# Capability lookup

This method is asynchronous - it immediately returns the requested Capability registration. Capability check is then delivered as a callback to registered webhooks with trigger CAPABILITY for every reachable channel.

Endpoint: POST /v1/projects/{project_id}/capability:query
Version: 1.0
Security: Basic, oAuth2

## Security:

  - `Basic` (unknown)
    http basic

  - `oAuth2` (unknown)
    oauth2

## Path parameters:

  - `project_id` (string, required)
    The unique ID of the project. You can find this on the [Sinch Dashboard](https://dashboard.sinch.com/convapi/apps).

## Request body:

  - `application/json` (unknown)
    The query capability request.

## Request fields (application/json):

  - `app_id` (string, required)
    The ID of the app to use for capability lookup.
    Example: {APP_ID}

  - `recipient` (object, required)
    Identifies the recipient.

  - `recipient.identified_by` (object)
    The identity as specified by the channel.

  - `recipient.identified_by.channel_identities` (array, required)
    A list of specific channel identities.
The API will use these identities when sending to specific channels.

  - `recipient.identified_by.channel_identities.channel` (string, required)
    The identifier of the channel you want to include. Must be one of the enum values.
    Enum: "SMS", "RCS", "WHATSAPP", "MMS", "KAKAOTALK", "KAKAOTALKCHAT", "VIBERBM", "LINE", "INSTAGRAM", "MESSENGER", "WECHAT", "TELEGRAM", "APPLEBC"

  - `recipient.identified_by.channel_identities.identity` (string, required)
    The channel recipient identity.

  - `recipient.contact_id` (string)
    The ID of the contact.
    Example: {CONTACT_ID}

  - `request_id` (string)
    ID for the asynchronous response, will be generated if not set.
Currently this field is not used for idempotency.

## Response 200:

  - `200` (unknown)
    A successful response.

## Response 200 fields (application/json):

  - `app_id` (string)
    The ID of the app to use for capability lookup.

  - `recipient` (object)
    Identifies the recipient.

  - `recipient.identified_by` (object)
    The identity as specified by the channel.

  - `recipient.identified_by.channel_identities` (array, required)
    A list of specific channel identities.
The API will use these identities when sending to specific channels.

  - `recipient.identified_by.channel_identities.channel` (string, required)
    The identifier of the channel you want to include. Must be one of the enum values.
    Enum: "SMS", "RCS", "WHATSAPP", "MMS", "KAKAOTALK", "KAKAOTALKCHAT", "VIBERBM", "LINE", "INSTAGRAM", "MESSENGER", "WECHAT", "TELEGRAM", "APPLEBC"

  - `recipient.identified_by.channel_identities.identity` (string, required)
    The channel recipient identity.

  - `recipient.contact_id` (string)
    The ID of the contact.
    Example: {CONTACT_ID}

  - `request_id` (string)
    ID for the asynchronous response, will be generated if not set.

## Response 400:

  - `400` (unknown)
    Malformed request. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

## Response 400 fields (application/json):

  - `error` (object)

  - `error.code` (integer)

  - `error.details` (array)

  - `error.details.type_url` (string)

  - `error.details.value` (string)

  - `error.message` (string)

  - `error.status` (string)

## Response 401:

  - `401` (unknown)
    Incorrect credentials. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

## Response 403:

  - `403` (unknown)
    Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

## Response 403 fields (application/json):

  - `error` (object)

  - `error.code` (integer)

  - `error.details` (array)

  - `error.details.type_url` (string)

  - `error.details.value` (string)

  - `error.message` (string)

  - `error.status` (string)

## Response 500:

  - `500` (unknown)
    Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

## Response 500 fields (application/json):

  - `error` (object)

  - `error.code` (integer)

  - `error.details` (array)

  - `error.details.type_url` (string)

  - `error.details.value` (string)

  - `error.message` (string)

  - `error.status` (string)

## Response 501:

  - `501` (unknown)
    Something went wrong on our end, try again with exponential back-off. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

## Response 501 fields (application/json):

  - `error` (object)

  - `error.code` (integer)

  - `error.details` (array)

  - `error.details.type_url` (string)

  - `error.details.value` (string)

  - `error.message` (string)

  - `error.status` (string)

