# searchSDK for Expo

Expo SDK 55–57 · native development builds and web. Normalized search through your application's HTTPS gateway.

Canonical: https://searchsdk.dev/docs/sdks/expo
Markdown: https://searchsdk.dev/docs/sdks/expo.md

<a id="install"></a>

## Install from source

Package: `@belweave/search-sdk-expo`, version `0.1.0-alpha.0`. This is an alpha source/local-artifact installation. No public registry release or release tag is assumed.

**Get the source**

```bash
git clone https://github.com/Belweave/searchSDK.git
cd searchSDK
# Record this revision with your application's dependency lock.
git rev-parse HEAD
```

**Build or install the local package**

```bash
nvm use
npm ci
npm run build:mobile
npm pack -w @belweave/search-sdk-react-native
npm pack -w @belweave/search-sdk-expo

# In your existing Expo 55–57 app, install both local artifacts:
npm install /absolute/path/searchSDK/belweave-search-sdk-react-native-0.1.0-alpha.0.tgz /absolute/path/searchSDK/belweave-search-sdk-expo-0.1.0-alpha.0.tgz
# Rebuild with expo run:ios, expo run:android, or your EAS workflow.
```

Expo is an explicit application peer. Native apps use the sibling React Native bridge; Expo Go cannot load it. The web entry uses Expo streaming fetch and requires your gateway's browser CORS allowlist.

<a id="first-search"></a>

## Call your application gateway

First deploy an [application-owned gateway](https://searchsdk.dev/docs/guides/application-gateway). searchsdk.dev hosts a demonstration playground and documentation MCP service; neither is an application gateway for these SDKs.

**search.ts**

```typescript
import { createExpoSearchClient } from '@belweave/search-sdk-expo';

export async function searchExample(
  endpoint: string,
  accessToken: () => Promise<string>,
  signal: AbortSignal,
) {
  const search = createExpoSearchClient({ endpoint, accessToken, timeoutMs: 10_000 });
  return search.web.search({
    query: 'SQLite write concurrency', limit: 3,
  }, { signal });
}
```

Pass your application's HTTPS gateway, session callback and cancellation signal. Provider keys remain server-side. Native use requires a development or production build containing the bridge.

<a id="scope"></a>

## Supported surface and limits

Normalized search through your application's HTTPS gateway.

- Stock Expo Go is unsupported on native platforms.
- Expo 55/56 native runtime behavior is unverified; source/type checks are narrower evidence.

Preserve result order, provider-native scores and source provenance. Unknown usage is not zero cost. Cancellation and deadlines cannot undo a request already accepted by a remote system or guarantee exactly-once effects.

<a id="verify"></a>

## Verify without provider keys

**Repository checkout · local checks**

```bash
npm run test:mobile && npm run test:mobile:package
```

Source/type compatibility for Expo 55, 56 and 57; Metro web/iOS/Android exports and native runtime coverage for Expo 57 only.

These are deterministic contract and artifact checks. They do not establish live-provider or account-entitlement verification. Read the package README for precise commands, dependencies and runtime coverage.

<a id="next"></a>

## Continue in your language

- [Expo package reference](https://github.com/Belweave/searchSDK/tree/main/packages/expo#readme): Complete API, errors, streaming, packaging and platform boundaries.
- [Compare SDKs](https://searchsdk.dev/docs/sdks)
- [Gateway protocol and authorization](https://searchsdk.dev/docs/guides/application-gateway)
