[Home](./index.md) > [iceshrimp-sdk](./iceshrimp-sdk.md) > [api](./iceshrimp-sdk.api.md) > [APIClient](./iceshrimp-sdk.api.apiclient.md) > [request](./iceshrimp-sdk.api.apiclient.request.md) ## api.APIClient.request() method **Signature:** ```typescript request(endpoint: E, params?: P, credential?: string | null | undefined): Promise extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : IsCaseMatched extends true ? GetCaseResult : Endpoints[E]["res"]["$switch"]["$default"] : Endpoints[E]["res"]>; ``` ## Parameters | Parameter | Type | Description | | --- | --- | --- | | endpoint | E | | | params | P | _(Optional)_ | | credential | string \| null \| undefined | _(Optional)_ | **Returns:** Promise<[Endpoints](./iceshrimp-sdk.endpoints.md)\[E\]\["res"\] extends { $switch: { $cases: \[any, any\]\[\]; $default: any; }; } ? IsCaseMatched<E, P, 0> extends true ? GetCaseResult<E, P, 0> : IsCaseMatched<E, P, 1> extends true ? GetCaseResult<E, P, 1> : IsCaseMatched<E, P, 2> extends true ? GetCaseResult<E, P, 2> : IsCaseMatched<E, P, 3> extends true ? GetCaseResult<E, P, 3> : IsCaseMatched<E, P, 4> extends true ? GetCaseResult<E, P, 4> : IsCaseMatched<E, P, 5> extends true ? GetCaseResult<E, P, 5> : IsCaseMatched<E, P, 6> extends true ? GetCaseResult<E, P, 6> : IsCaseMatched<E, P, 7> extends true ? GetCaseResult<E, P, 7> : IsCaseMatched<E, P, 8> extends true ? GetCaseResult<E, P, 8> : IsCaseMatched<E, P, 9> extends true ? GetCaseResult<E, P, 9> : [Endpoints](./iceshrimp-sdk.endpoints.md)\[E\]\["res"\]\["$switch"\]\["$default"\] : [Endpoints](./iceshrimp-sdk.endpoints.md)\[E\]\["res"\]>