> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.CapabilityApi.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface CapabilityApi

```typescript
interface CapabilityApi {
    invoke(
        req: CapabilityInvocationRequest,
    ): Promise<CapabilityInvocationResult>;
}
```

Types: [invoke](#invoke-1), [CapabilityInvocationRequest](core.CapabilityInvocationRequest.md), [CapabilityInvocationResult](core.CapabilityInvocationResult.md)

##### Index

### <a id="methods"></a>Methods

[invoke](#invoke)

## <a id="methods-1"></a>Methods

### <a id="invoke"></a>invoke

*   <a id="invoke-1"></a>
    
    ```typescript
    invoke(req: CapabilityInvocationRequest): Promise<CapabilityInvocationResult>
    ```
    
    Types: [CapabilityInvocationRequest](core.CapabilityInvocationRequest.md), [CapabilityInvocationResult](core.CapabilityInvocationResult.md)
    
    Caller invokes a named worker capability. BLOCKING RPC returning the host-VALIDATED result. Expected denial, resolution, schema, worker, and egress outcomes return `{ ok: false, errorCode }`; transport faults reject.
    
    #### Parameters
    
    *   req: [CapabilityInvocationRequest](core.CapabilityInvocationRequest.md)
    
    #### Returns Promise<[CapabilityInvocationResult](core.CapabilityInvocationResult.md)\>
    

**Authority for `capability.invoke`**

Reviewed request token: `capability.invoke`. Standing capability: `capability.invoke`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).
