> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prequel.co/llms.txt
> Use this file to discover all available pages before exploring further.

# React SDK Reference

> React hooks, provider, and client utilities for Prequel Import.

# React SDK Reference

API reference for the Prequel Import React SDK.
Includes the provider, client helpers, hooks, and utilities intended for application code.

## Setup

### ImportProvider()

> **ImportProvider**(`__namedParameters`: [`ImportProviderProps`](common-types#importproviderprops)): `FunctionComponentElement`\<`ProviderProps`\<`ImportContextValue` | `null`>>

Makes the Import SDK client available to all hooks below it in the React tree.

#### Parameters

| Parameter           | Type                                                      |
| ------------------- | --------------------------------------------------------- |
| `__namedParameters` | [`ImportProviderProps`](common-types#importproviderprops) |

#### Returns

`FunctionComponentElement`\<`ProviderProps`\<`ImportContextValue` | `null`>>

## Client

### DEFAULT\_IMPORT\_API\_BASE\_URL

> `const` **DEFAULT\_IMPORT\_API\_BASE\_URL**: `"https://api.prequel.co"` = `"https://api.prequel.co"`

Default base URL for Prequel's Import API.

***

### createDefaultClient()

> **createDefaultClient**(`config`: [`DefaultClientConfig`](common-types#defaultclientconfig)): `ImportClient`

Creates the default browser client used by `ImportProvider`.

The client calls `fetchToken` to get short-lived scoped Import API tokens,
caches provider-scoped tokens, and retries once with a fresh token after a
401 response. Source-claim routes automatically request a token for the
source payload being sent.

#### Parameters

| Parameter | Type                                                      |
| --------- | --------------------------------------------------------- |
| `config`  | [`DefaultClientConfig`](common-types#defaultclientconfig) |

#### Returns

`ImportClient`

## Dataset hooks

### useListDatasets()

> **useListDatasets**(`options?`: [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions)): [`UseListDatasetsResult`](common-types#uselistdatasetsresult)

Lists import datasets with cursor pagination helpers.

#### Parameters

| Parameter  | Type                                                                      |
| ---------- | ------------------------------------------------------------------------- |
| `options?` | [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions) |

#### Returns

[`UseListDatasetsResult`](common-types#uselistdatasetsresult)

***

### useDataset()

> **useDataset**(`id`: `string`): [`UseDatasetResult`](common-types#usedatasetresult)

Fetches one import dataset by ID.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `id`      | `string` |

#### Returns

[`UseDatasetResult`](common-types#usedatasetresult)

***

### useDatasetSchema()

> **useDatasetSchema**(`datasetId`: `string` | `undefined`): [`UseDatasetSchemaResult`](common-types#usedatasetschemaresult)

Fetches the inferred schema for a dataset.

Pass `undefined` while the dataset ID is not available.

#### Parameters

| Parameter   | Type                    |
| ----------- | ----------------------- |
| `datasetId` | `string` \| `undefined` |

#### Returns

[`UseDatasetSchemaResult`](common-types#usedatasetschemaresult)

***

### useRandomSampleDataset()

> **useRandomSampleDataset**(): [`UseRandomSampleDatasetResult`](common-types#userandomsampledatasetresult)

Creates a random sample for a dataset and exposes action state for the request.

#### Returns

[`UseRandomSampleDatasetResult`](common-types#userandomsampledatasetresult)

***

### useCreateDataset()

> **useCreateDataset**(): [`UseCreateDatasetResult`](common-types#usecreatedatasetresult)

Creates an import dataset.

#### Returns

[`UseCreateDatasetResult`](common-types#usecreatedatasetresult)

## Source hooks

### useSourceForm()

> **useSourceForm**(`options`: [`UseSourceFormOptions`](common-types#usesourceformoptions)): [`UseSourceFormResult`](common-types#usesourceformresult)

Builds source connection forms from Prequel's vendor-specific form metadata.

Use this when you need the editable source draft, field definitions, and helpers
for producing a create/update payload.

#### Parameters

| Parameter | Type                                                        |
| --------- | ----------------------------------------------------------- |
| `options` | [`UseSourceFormOptions`](common-types#usesourceformoptions) |

#### Returns

[`UseSourceFormResult`](common-types#usesourceformresult)

***

### useSourceFormFields()

> **useSourceFormFields**(`options`: [`UseSourceFormOptions`](common-types#usesourceformoptions)): [`UseSourceFormResult`](common-types#usesourceformresult)

Alias for `useSourceForm` kept for form-field oriented integrations.

#### Parameters

| Parameter | Type                                                        |
| --------- | ----------------------------------------------------------- |
| `options` | [`UseSourceFormOptions`](common-types#usesourceformoptions) |

#### Returns

[`UseSourceFormResult`](common-types#usesourceformresult)

***

### useListSources()

> **useListSources**(`options?`: [`ListSourcesOptions`](common-types#listsourcesoptions)): [`UseListSourcesResult`](common-types#uselistsourcesresult)

Lists import sources with optional provider filtering and cursor pagination helpers.

#### Parameters

| Parameter  | Type                                                    |
| ---------- | ------------------------------------------------------- |
| `options?` | [`ListSourcesOptions`](common-types#listsourcesoptions) |

#### Returns

[`UseListSourcesResult`](common-types#uselistsourcesresult)

***

### useSource()

> **useSource**(`id`: `string`): [`UseSourceResult`](common-types#usesourceresult)

Fetches one import source by ID.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `id`      | `string` |

#### Returns

[`UseSourceResult`](common-types#usesourceresult)

***

### useSourceTables()

> **useSourceTables**(`sourceId`: `string` | `undefined`): [`UseSourceTablesResult`](common-types#usesourcetablesresult)

Lists tables available from a source.

Pass `undefined` while the source ID is not available.

#### Parameters

| Parameter  | Type                    |
| ---------- | ----------------------- |
| `sourceId` | `string` \| `undefined` |

#### Returns

[`UseSourceTablesResult`](common-types#usesourcetablesresult)

***

### useSourceSchema()

> **useSourceSchema**(`sourceId`: `string` | `undefined`, `request`: [`SourcePreviewOptions`](api-models#sourcepreviewoptions) | `undefined`): [`UseSourceSchemaResult`](common-types#usesourceschemaresult)

Fetches the schema for a source table, SQL query, or object-storage glob.

Pass `undefined` for either argument until the source and preview request are ready.

#### Parameters

| Parameter  | Type                                                                     |
| ---------- | ------------------------------------------------------------------------ |
| `sourceId` | `string` \| `undefined`                                                  |
| `request`  | [`SourcePreviewOptions`](api-models#sourcepreviewoptions) \| `undefined` |

#### Returns

[`UseSourceSchemaResult`](common-types#usesourceschemaresult)

***

### usePreviewSourceRows()

> **usePreviewSourceRows**(): [`UsePreviewSourceRowsResult`](common-types#usepreviewsourcerowsresult)

Previews rows from a source table, SQL query, or object-storage glob.

#### Returns

[`UsePreviewSourceRowsResult`](common-types#usepreviewsourcerowsresult)

***

### useCreateSource()

> **useCreateSource**(): [`UseCreateSourceResult`](common-types#usecreatesourceresult)

Creates an import source.

#### Returns

[`UseCreateSourceResult`](common-types#usecreatesourceresult)

***

### useUpdateSource()

> **useUpdateSource**(): [`UseUpdateSourceResult`](common-types#useupdatesourceresult)

Updates an import source.

#### Returns

[`UseUpdateSourceResult`](common-types#useupdatesourceresult)

***

### useTestNewSource()

> **useTestNewSource**(): [`UseTestNewSourceResult`](common-types#usetestnewsourceresult)

Tests connection settings before creating a source.

#### Returns

[`UseTestNewSourceResult`](common-types#usetestnewsourceresult)

***

### useTestExistingSource()

> **useTestExistingSource**(): [`UseTestExistingSourceResult`](common-types#usetestexistingsourceresult)

Tests an existing source, optionally with pending updates.

#### Returns

[`UseTestExistingSourceResult`](common-types#usetestexistingsourceresult)

## Stream hooks

### useListStreams()

> **useListStreams**(`options?`: [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions)): [`UseListStreamsResult`](common-types#useliststreamsresult)

Lists import streams with cursor pagination helpers.

#### Parameters

| Parameter  | Type                                                                      |
| ---------- | ------------------------------------------------------------------------- |
| `options?` | [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions) |

#### Returns

[`UseListStreamsResult`](common-types#useliststreamsresult)

***

### useStream()

> **useStream**(`id`: `string`): [`UseStreamResult`](common-types#usestreamresult)

Fetches one import stream by ID.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `id`      | `string` |

#### Returns

[`UseStreamResult`](common-types#usestreamresult)

***

### useCreateStream()

> **useCreateStream**(): [`UseCreateStreamResult`](common-types#usecreatestreamresult)

Creates an import stream.

#### Returns

[`UseCreateStreamResult`](common-types#usecreatestreamresult)

***

### useUpdateStream()

> **useUpdateStream**(): [`UseUpdateStreamResult`](common-types#useupdatestreamresult)

Updates an import stream.

#### Returns

[`UseUpdateStreamResult`](common-types#useupdatestreamresult)

***

### useTestNewStream()

> **useTestNewStream**(): [`UseTestNewStreamResult`](common-types#usetestnewstreamresult)

Tests stream mappings before creating a stream.

#### Returns

[`UseTestNewStreamResult`](common-types#usetestnewstreamresult)

***

### useTestExistingStream()

> **useTestExistingStream**(): [`UseTestExistingStreamResult`](common-types#usetestexistingstreamresult)

Tests mapping changes against an existing stream.

#### Returns

[`UseTestExistingStreamResult`](common-types#usetestexistingstreamresult)

***

### useTestExpression()

> **useTestExpression**(): [`UseTestExpressionResult`](common-types#usetestexpressionresult)

Evaluates a single mapping expression against a sample record.

#### Returns

[`UseTestExpressionResult`](common-types#usetestexpressionresult)

## Destination hooks

### useListDestinations()

> **useListDestinations**(`options?`: [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions)): [`UseListDestinationsResult`](common-types#uselistdestinationsresult)

Lists import destinations with cursor pagination helpers.

#### Parameters

| Parameter  | Type                                                                      |
| ---------- | ------------------------------------------------------------------------- |
| `options?` | [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions) |

#### Returns

[`UseListDestinationsResult`](common-types#uselistdestinationsresult)

***

### useDestination()

> **useDestination**(`id`: `string` | `undefined`): [`UseDestinationResult`](common-types#usedestinationresult)

Fetches one import destination by ID.

Pass `undefined` while the destination ID is not available.

#### Parameters

| Parameter | Type                    |
| --------- | ----------------------- |
| `id`      | `string` \| `undefined` |

#### Returns

[`UseDestinationResult`](common-types#usedestinationresult)

## Extract hooks

### useListExtracts()

> **useListExtracts**(`datasetId`: `string`, `options?`: [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions)): [`UseListExtractsResult`](common-types#uselistextractsresult)

Lists extracts for a dataset with cursor pagination helpers.

#### Parameters

| Parameter   | Type                                                                      |
| ----------- | ------------------------------------------------------------------------- |
| `datasetId` | `string`                                                                  |
| `options?`  | [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions) |

#### Returns

[`UseListExtractsResult`](common-types#uselistextractsresult)

***

### useExtractDebug()

> **useExtractDebug**(`extractId`: `string`, `options?`: [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions), `filters?`: `Record`\<`string`, `string`>): [`UseExtractDebugResult`](common-types#useextractdebugresult)

Lists debug records for an extract with optional filters and cursor pagination helpers.

#### Parameters

| Parameter   | Type                                                                      |
| ----------- | ------------------------------------------------------------------------- |
| `extractId` | `string`                                                                  |
| `options?`  | [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions) |
| `filters?`  | `Record`\<`string`, `string`>                                             |

#### Returns

[`UseExtractDebugResult`](common-types#useextractdebugresult)

***

### useExtract()

> **useExtract**(`id`: `string`): [`UseExtractResult`](common-types#useextractresult)

Fetches one extract by ID.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `id`      | `string` |

#### Returns

[`UseExtractResult`](common-types#useextractresult)

## Load hooks

### useListLoads()

> **useListLoads**(`streamId`: `string`, `options?`: [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions)): [`UseListLoadsResult`](common-types#uselistloadsresult)

Lists loads for a stream with cursor pagination helpers.

#### Parameters

| Parameter  | Type                                                                      |
| ---------- | ------------------------------------------------------------------------- |
| `streamId` | `string`                                                                  |
| `options?` | [`PaginatedImportQueryOptions`](common-types#paginatedimportqueryoptions) |

#### Returns

[`UseListLoadsResult`](common-types#uselistloadsresult)

***

### useLoad()

> **useLoad**(`id`: `string`): [`UseLoadResult`](common-types#useloadresult)

Fetches one load by ID.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `id`      | `string` |

#### Returns

[`UseLoadResult`](common-types#useloadresult)

## Utilities

### isImportApiError()

> **isImportApiError**(`error`: `unknown`): `error is ImportApiError`

Returns true when an unknown error has the normalized Import API error shape.

#### Parameters

| Parameter | Type      |
| --------- | --------- |
| `error`   | `unknown` |

#### Returns

`error is ImportApiError`

***

### toImportApiError()

> **toImportApiError**(`error`: `unknown`): [`ImportApiError`](common-types#importapierror)

Converts an unknown thrown value into a normalized Import API error.

#### Parameters

| Parameter | Type      |
| --------- | --------- |
| `error`   | `unknown` |

#### Returns

[`ImportApiError`](common-types#importapierror)

***

### useImportContext()

> **useImportContext**(): `ImportContextValue`

Returns the SDK APIs registered by `ImportProvider`.

Use this only when the built-in hooks do not cover a custom workflow.

#### Returns

`ImportContextValue`
