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

# Interface ConnectorsApi

```typescript
interface ConnectorsApi {
    google: { calendar: GoogleCalendarApi; mail: GoogleMailApi };
    call<T = unknown>(
        providerId: string,
        resource: string,
        op: string,
        input?: ProjectCommandJsonValue,
    ): Promise<T>;
    execute(input: ConnectorExecuteInput): Promise<ConnectorExecuteResult>;
}
```

Types: [google](#google), [GoogleCalendarApi](core.GoogleCalendarApi.md), [GoogleMailApi](core.GoogleMailApi.md), [call](#call-1), [T](#callt), [ProjectCommandJsonValue](../types/core.Supporting_types.ProjectCommandJsonValue.md), [execute](#execute-1), [ConnectorExecuteInput](core.ConnectorExecuteInput.md), [ConnectorExecuteResult](../types/core.ConnectorExecuteResult.md)

##### Index

### <a id="properties"></a>Properties

[google](#google)

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

[call](#call) [execute](#execute)

## <a id="properties-1"></a>Properties

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

```typescript
google: { calendar: GoogleCalendarApi; mail: GoogleMailApi }
```

Types: [GoogleCalendarApi](core.GoogleCalendarApi.md), [GoogleMailApi](core.GoogleMailApi.md)

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

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

*   <a id="call-1"></a>
    
    ```typescript
    call<T = unknown>(
        providerId: string,
        resource: string,
        op: string,
        input?: ProjectCommandJsonValue,
    ): Promise<T>
    ```
    
    Types: [T](#callt), [ProjectCommandJsonValue](../types/core.Supporting_types.ProjectCommandJsonValue.md)
    
    The generic connector call form (§18.4): `connectors.call(providerId, resource, op, input)`. It rides the SAME wire envelope as the typed per-provider namespaces — both spellings resolve to one dispatchable wire method — so a caller can reach any registered provider's operation without a generated namespace. The typed `connectors.google.*` namespaces stay for back-compat and rich DTO types; this is the open, provider-parametric door.
    
    #### Type Parameters
    
    *   <a id="callt"></a>T = unknown
    
    #### Parameters
    
    *   providerId: string
    *   resource: string
    *   op: string
    *   `Optional`input: [ProjectCommandJsonValue](../types/core.Supporting_types.ProjectCommandJsonValue.md)
    
    #### Returns Promise<[T](#callt)\>
    

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

*   <a id="execute-1"></a>
    
    ```typescript
    execute(input: ConnectorExecuteInput): Promise<ConnectorExecuteResult>
    ```
    
    Types: [ConnectorExecuteInput](core.ConnectorExecuteInput.md), [ConnectorExecuteResult](../types/core.ConnectorExecuteResult.md)
    
    Execute one operation from the host-owned connector catalog. The provider and operation ids are selectors only: main resolves their pack, validates `input`, applies account-scoped authority and confirmation, and owns the credential/provider boundary.
    
    #### Parameters
    
    *   input: [ConnectorExecuteInput](core.ConnectorExecuteInput.md)
    
    #### Returns Promise<[ConnectorExecuteResult](../types/core.ConnectorExecuteResult.md)\>
