# 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 ## Path parameters: - `project_id` (string, required) The unique ID of the project. You can find this on the Sinch Dashboard. ## 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. - `request_id` (string) ID for the asynchronous response, will be generated if not set. Currently this field is not used for idempotency. ## Response 200 fields (application/json): - `app_id` (string) The ID of the app to use for capability lookup. - `recipient` (object) Identifies the recipient. - `request_id` (string) ID for the asynchronous response, will be generated if not set. ## 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 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 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 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)