# Capability A capability query determines which options are available for reaching a [contact](https://developers.sinch.com/docs/conversation/keyconcepts/#contact) on the channels on which the contact has a channel identity. To execute the request, either the contact ID or the channel recipient identities of the contact are required. The request is executed asynchronously. Therefore the service responds with immediate acknowledgment. The final result of the capability query is sent to a [webhook](https://developers.sinch.com/docs/conversation/keyconcepts/#webhook) registered for the `CAPABILITY` trigger. When no authoritative source of truth exists for a given channel's capability, the endpoint **MUST** respond as `Capable` for that channel. This ensures that any configured fallback and upscale routing strategies continue to function as expected. {% admonition type="info" name="Note:" %} The `status` received via the `MESSAGE_DELIVERY` callback should be treated as the definitive indication of reachability for the corresponding recipient at the time of the delivery attempt. For example, a `RECIPIENT_NOT_REACHABLE` status may legitimately follow an earlier `Capable` response from the Capability endpoint, as reachability can change between the time of capability assessment and the time of actual message delivery. {% /admonition %} ## Capability lookup - [POST /v1/projects/{project_id}/capability:query](https://developers.sinch.com/docs/conversation/api-reference/conversation/capability/capability_querycapability.md): 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.