Masheev Developers

Open Markdown · Agent index

Masheev API client

@masheev/client provides typed tRPC clients and Better Auth integrations. Developer tooling is beta. Confirm the installed version's exports and verify an organization read before using it for provisioning.

Choose an entry point

ImportExports / purpose
@masheev/clientapiClient, authClient for direct calls
@masheev/client/reactDirect typed apiClient and React-capable authClient
@masheev/client/serverserverApi, createServerApiClients
@masheev/client/tanstackTanStack Start integration; not a Next.js adapter
@masheev/client/nativeReact Native client factory and authentication bridge
@masheev/client/typesType-only imports
pnpm add @masheev/client

The /react API client is a direct tRPC client: use .query() and .mutate(). It does not turn endpoint methods into .useQuery() or .useMutation() hooks. Wrap direct calls with your application's query library when needed.

Expo and React Native prerequisites

@masheev/client/native is an Expo / React Native entry point, not a Node entry point. Use your application's supported Expo SDK and its matching React Native version. Its authentication bridge uses Better Auth's Expo integration, which requires the following optional peers when you import the native entry:

  • expo-constants >=17, expo-linking >=7 and expo-network >=8.0.7.
  • expo-secure-store >=12.5 and expo-web-browser >=14.
  • React and React Native from your application's Expo SDK.

Install SDK-compatible module versions through Expo, rather than choosing independent native library versions:

npx expo install expo-constants expo-linking expo-network expo-secure-store expo-web-browser

Pass your application's SecureStore adapter to createNativeMasheevClient. These peers are optional for the web and server entries. @masheev/client/copilot/native accepts injected storage, AppState and WebSocket adapters and has no direct React Native or Expo runtime import.

Server integrations: current limitation

The reviewed server factory accepts baseURL, apiToken and apiKey, but its current implementation configures the auth client without forwarding the custom URL or key into the tRPC transport. Do not rely on those options for backend provisioning until your installed release passes a credential/origin test. apiClient is not an export of /server.

For backend integration today, use the documented REST authentication example and exact operations from OpenAPI. The current org-key header is X-API-Key, with explicit matching orgId and permitted actions. Do not substitute Bearer auth for an organization key.

Call a supported operation

A signed-in Masheev browser session can use the direct client:

import { apiClient } from "@masheev/client";

const { inboxes } = await apiClient.inboxes.list.query({ orgId });

This is not a way to authenticate your own customers to the management API. Use signed widget identity for customer conversations and your own backend for business operations.

Discover exact schemas

Read API reference or download openapi.json. Use the installed package's TypeScript declarations for tRPC method names. Before a mutation, inspect the full required input and response shape. Inbox creation, for example, requires channel-specific configuration in addition to a name and channel; do not build requests from abbreviated examples.

List and reuse resources before creating them. Store the returned IDs with the organization. After a timed-out create, reconcile with a read before retrying. Do not assume all mutations support an idempotency header.

Errors and retries

ResultNext action
400 / BAD_REQUESTCheck required fields and types in the current schema
401 / UNAUTHORIZEDCheck key header, credential expiry and selected auth method
403 / FORBIDDENCheck organization, action permissions, account approval and feature gate
404 / NOT_FOUNDCheck the endpoint and resource ID within the same organization
409 / CONFLICTRead current state/version before retrying
429Respect Retry-After when supplied; use bounded backoff for safe retries
Timeout / 5xxBound retries; reconcile mutations before another write

Supported scope

Only implemented, authorized operations are available. A listed schema is not an availability guarantee. Generic durable outgoing webhooks and several connectors are off; see availability. Configure integrations through supported APIs or the dashboard instead of inventing endpoint paths or copying legacy examples.