<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [firefish-js](./firefish-js.md) &gt; [api](./firefish-js.api.md) &gt; [APIClient](./firefish-js.api.apiclient.md) &gt; [request](./firefish-js.api.apiclient.request.md)

## api.APIClient.request() method

**Signature:**

```typescript
request<E extends keyof Endpoints, P extends Endpoints[E]["req"]>(
		endpoint: E,
		params?: P,
		credential?: string | null | undefined,
	): Promise<
		Endpoints[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[E]["res"]["$switch"]["$default"]
			: Endpoints[E]["res"]
	>;
```

## Parameters

|  Parameter | Type | Description |
|  --- | --- | --- |
|  endpoint | E |  |
|  params | P | _(Optional)_ |
|  credential | string \| null \| undefined | _(Optional)_ |

**Returns:**

Promise&lt; [Endpoints](./firefish-js.endpoints.md)<!-- -->\[E\]\["res"\] extends { $switch: { $cases: \[any, any\]\[\]; $default: any; }; } ? IsCaseMatched&lt;E, P, 0&gt; extends true ? GetCaseResult&lt;E, P, 0&gt; : IsCaseMatched&lt;E, P, 1&gt; extends true ? GetCaseResult&lt;E, P, 1&gt; : IsCaseMatched&lt;E, P, 2&gt; extends true ? GetCaseResult&lt;E, P, 2&gt; : IsCaseMatched&lt;E, P, 3&gt; extends true ? GetCaseResult&lt;E, P, 3&gt; : IsCaseMatched&lt;E, P, 4&gt; extends true ? GetCaseResult&lt;E, P, 4&gt; : IsCaseMatched&lt;E, P, 5&gt; extends true ? GetCaseResult&lt;E, P, 5&gt; : IsCaseMatched&lt;E, P, 6&gt; extends true ? GetCaseResult&lt;E, P, 6&gt; : IsCaseMatched&lt;E, P, 7&gt; extends true ? GetCaseResult&lt;E, P, 7&gt; : IsCaseMatched&lt;E, P, 8&gt; extends true ? GetCaseResult&lt;E, P, 8&gt; : IsCaseMatched&lt;E, P, 9&gt; extends true ? GetCaseResult&lt;E, P, 9&gt; : [Endpoints](./firefish-js.endpoints.md)<!-- -->\[E\]\["res"\]\["$switch"\]\["$default"\] : [Endpoints](./firefish-js.endpoints.md)<!-- -->\[E\]\["res"\] &gt;

