Skip to article

WonderSearch

Semantic retrieval over ingested documents and workspace collections, with corpus-native citation identities.

On this page

Corpus retrieval boundary

WonderSearch.ai and WonderSearch.com are one provider. Its native client searches a drive or workspace corpus and preserves provider document, revision, snapshot, and passage data. It is not a normalized open-web adapter.

Ingestion readiness is a prerequisite. Preserve passage snapshots and text offsets for citations. A document ID is not a public web URL. Search requires a provider Idempotency-Key; the native client does not invent one or silently resubmit ambiguous work.

Corpus scopes and native metadata filters; normalized web domain filters do not apply.

Provider-native client

wondersearch-native.ts · server
import { createWonderSearchClient } from '@belweave/search-sdk/native-wondersearch';

const apiKey = process.env.WONDERSEARCH_API_KEY;
if (!apiKey) throw new Error('WONDERSEARCH_API_KEY is required');

const client = createWonderSearchClient({ apiKey, timeoutMs: 10_000 });
const response = await client.searchDrive({
  path: { drive_id: 'your-drive-id' },
  headers: { 'Idempotency-Key': crypto.randomUUID() },
  body: { query: 'SQLite write concurrency' },
});
console.log(response.data, response.metadata);

Read provider data from response.data and sanitized transport details from response.metadata. Native TypeScript response types are not runtime schema validation. Preserve the operation's native response and source identities.

Native operation inventory

Methods available on this native client. Paths are relative to each operation's fixed base; a provider may use more than one origin. Eligible operations retry only when you opt into a client retry policy.

95 / 95
MethodHTTP / relative pathResponse / retry eligibility
searchDrivePOST /v1/drives/{drive_id}/searchjson · no automatic retry
getPassageGET /v1/drives/{drive_id}/passages/{passage_id}json · eligible
getCapabilitiesGET /v1/workspaces/{workspace_id}/capabilitiesjson · eligible
searchWorkspacePOST /v1/workspaces/{workspace_id}/searchjson · no automatic retry
bootstrapAccountPOST /v1/account/bootstrapjson · no automatic retry
getMeGET /v1/mejson · eligible
listOrganizationsGET /v1/organizationsjson · eligible
getOrganizationGET /v1/organizations/{organization_id}json · eligible
getOrganizationRawGET /v1/organizations/{organization_id}raw · eligible
updateOrganizationPATCH /v1/organizations/{organization_id}json · no automatic retry
listOrganizationMembersGET /v1/organizations/{organization_id}/membersjson · eligible
updateOrganizationMemberPATCH /v1/organizations/{organization_id}/members/{user_id}json · no automatic retry
deleteOrganizationMemberDELETE /v1/organizations/{organization_id}/members/{user_id}json · no automatic retry
listOrganizationWorkspacesGET /v1/organizations/{organization_id}/workspacesjson · eligible
createOrganizationWorkspacePOST /v1/organizations/{organization_id}/workspacesjson · no automatic retry
getWorkspaceGET /v1/workspaces/{workspace_id}json · eligible
getWorkspaceRawGET /v1/workspaces/{workspace_id}raw · eligible
updateWorkspacePATCH /v1/workspaces/{workspace_id}json · no automatic retry
listWorkspaceInheritedMembersGET /v1/workspaces/{workspace_id}/inherited-membersjson · eligible
listWorkspaceMembersGET /v1/workspaces/{workspace_id}/membersjson · eligible
createWorkspaceMemberPOST /v1/workspaces/{workspace_id}/membersjson · no automatic retry
updateWorkspaceMemberPATCH /v1/workspaces/{workspace_id}/members/{user_id}json · no automatic retry
deleteWorkspaceMemberDELETE /v1/workspaces/{workspace_id}/members/{user_id}json · no automatic retry
listOrganizationInvitationsGET /v1/organizations/{organization_id}/invitationsjson · eligible
createOrganizationInvitationPOST /v1/organizations/{organization_id}/invitationsjson · no automatic retry
getOrganizationInvitationGET /v1/organizations/{organization_id}/invitations/{invitation_id}json · eligible
getOrganizationInvitationRawGET /v1/organizations/{organization_id}/invitations/{invitation_id}raw · eligible
deleteOrganizationInvitationDELETE /v1/organizations/{organization_id}/invitations/{invitation_id}json · no automatic retry
resendOrganizationInvitationPOST /v1/organizations/{organization_id}/invitations/{invitation_id}/resendjson · no automatic retry
previewInvitationPOST /v1/invitations/previewjson · no automatic retry
acceptInvitationPOST /v1/invitations/acceptjson · no automatic retry
listWorkspaceApiKeysGET /v1/workspaces/{workspace_id}/api-keysjson · eligible
createWorkspaceApiKeyPOST /v1/workspaces/{workspace_id}/api-keysjson · no automatic retry
deleteWorkspaceApiKeyDELETE /v1/workspaces/{workspace_id}/api-keys/{key_id}json · no automatic retry
getWorkspaceOverviewGET /v1/workspaces/{workspace_id}/overviewjson · eligible
getOrganizationUsageGET /v1/organizations/{organization_id}/usagejson · eligible
listWorkspaceDrivesGET /v1/workspaces/{workspace_id}/drivesjson · eligible
createWorkspaceDrivePOST /v1/workspaces/{workspace_id}/drivesjson · no automatic retry
getDriveGET /v1/drives/{drive_id}json · eligible
getDriveRawGET /v1/drives/{drive_id}raw · eligible
updateDrivePATCH /v1/drives/{drive_id}json · no automatic retry
deleteDriveDELETE /v1/drives/{drive_id}json · no automatic retry
listDriveFoldersGET /v1/drives/{drive_id}/foldersjson · eligible
createDriveFolderPOST /v1/drives/{drive_id}/foldersjson · no automatic retry
getDriveFolderGET /v1/drives/{drive_id}/folders/{folder_id}json · eligible
getDriveFolderRawGET /v1/drives/{drive_id}/folders/{folder_id}raw · eligible
updateDriveFolderPATCH /v1/drives/{drive_id}/folders/{folder_id}json · no automatic retry
deleteDriveFolderDELETE /v1/drives/{drive_id}/folders/{folder_id}json · no automatic retry
createDriveDocumentPOST /v1/drives/{drive_id}/documentsjson · no automatic retry
listDriveDocumentsGET /v1/drives/{drive_id}/documentsjson · eligible
getDriveDocumentGET /v1/drives/{drive_id}/documents/{document_id}json · eligible
replaceDocumentPUT /v1/drives/{drive_id}/documents/{document_id}json · no automatic retry
deleteDriveDocumentDELETE /v1/drives/{drive_id}/documents/{document_id}json · no automatic retry
getDriveDocumentSourceGET /v1/drives/{drive_id}/documents/{document_id}/sourcebytes · eligible
getWorkspaceDefaultDriveGET /v1/workspaces/{workspace_id}/default-drivejson · eligible
getWorkspaceDefaultDriveRawGET /v1/workspaces/{workspace_id}/default-driveraw · eligible
setDefaultDrivePUT /v1/workspaces/{workspace_id}/default-drivejson · no automatic retry
getSdkContextGET /v1/sdk/contextjson · eligible
getDriveUploadCapabilitiesGET /v1/drives/{drive_id}/uploads/capabilitiesjson · eligible
createUploadBatchPOST /v1/drives/{drive_id}/uploads/batchjson · no automatic retry
completeUploadBatchPOST /v1/drives/{drive_id}/uploads/batch/completejson · no automatic retry
getUploadBatchStatusPOST /v1/drives/{drive_id}/uploads/batch/statusjson · no automatic retry
createDriveUploadPOST /v1/drives/{drive_id}/uploadsjson · no automatic retry
getDriveUploadGET /v1/drives/{drive_id}/uploads/{upload_id}json · eligible
uploadContentPUT /v1/drives/{drive_id}/uploads/{upload_id}/contentjson · no automatic retry
createUploadTransferPOST /v1/drives/{drive_id}/uploads/{upload_id}/transferjson · no automatic retry
completeUploadPOST /v1/drives/{drive_id}/uploads/{upload_id}/completejson · no automatic retry
getWorkspaceOperationGET /v1/workspaces/{workspace_id}/operations/{operation_id}json · eligible
createImportPUT /v1/drives/{drive_id}/imports/{import_id}json · no automatic retry
getImportGET /v1/drives/{drive_id}/imports/{import_id}json · eligible
declareImportChunksPOST /v1/drives/{drive_id}/imports/{import_id}/chunksjson · no automatic retry
acknowledgeImportChunkPOST /v1/drives/{drive_id}/imports/{import_id}/chunks/{sequence}/acknowledgejson · no automatic retry
sealImportPOST /v1/drives/{drive_id}/imports/{import_id}/sealjson · no automatic retry
getIngestionMetricsGET /v1/drives/{drive_id}/ingestion-metricsjson · eligible
getOrganizationBillingGET /v1/organizations/{organization_id}/billingjson · eligible
setBillingLimitsPOST /v1/organizations/{organization_id}/billing/limitsjson · no automatic retry
getOrganizationBillingLimitsGET /v1/organizations/{organization_id}/billing/limitsjson · eligible
getOrganizationBillingUsageGET /v1/organizations/{organization_id}/billing/usagejson · eligible
createBillingPortalPOST /v1/organizations/{organization_id}/billing/portaljson · no automatic retry
getOrganizationBillingWalletGET /v1/organizations/{organization_id}/billing/walletjson · eligible
getOrganizationBillingActivityGET /v1/organizations/{organization_id}/billing/activityjson · eligible
createOrganizationBillingPurchasePOST /v1/organizations/{organization_id}/billing/purchasesjson · no automatic retry
getOrganizationBillingPurchaseGET /v1/organizations/{organization_id}/billing/purchases/{purchase_id}json · eligible
listOrganizationBillingInvoicesGET /v1/organizations/{organization_id}/billing/invoicesjson · eligible
getWorkspaceStorageGET /v1/workspaces/{workspace_id}/storagejson · eligible
setWorkspaceStoragePOST /v1/workspaces/{workspace_id}/storagejson · no automatic retry
quoteWorkspaceStoragePOST /v1/workspaces/{workspace_id}/storage/quotejson · no automatic retry
closeImportPOST /v1/drives/{drive_id}/imports/{import_id}/closejson · no automatic retry
recoverImportPOST /v1/drives/{drive_id}/imports/{import_id}/recoverjson · no automatic retry
retryImportOperationPOST /v1/drives/{drive_id}/imports/{import_id}/operations/{operation_id}/retryjson · no automatic retry
getAutoTopupGET /v1/organizations/{organization_id}/billing/auto-topupjson · eligible
checkoutAutoTopupPOST /v1/organizations/{organization_id}/billing/auto-topup/checkoutjson · no automatic retry
amountAutoTopupPOST /v1/organizations/{organization_id}/billing/auto-topup/amountjson · no automatic retry
cancelAutoTopupPOST /v1/organizations/{organization_id}/billing/auto-topup/canceljson · no automatic retry
resumeAutoTopupPOST /v1/organizations/{organization_id}/billing/auto-topup/resumejson · no automatic retry

Limits and operation lifecycle

  • Pass signal and per-call timeoutMs on native request input when needed.
  • Persist a returned job identifier before explicitly reading or polling the same job. Native clients do not automatically poll.
  • SSE data is incremental provider event text. Parse and validate terminal or error events according to the provider contract; there is no reconnect or replay.
  • Native operations may create, delete, ingest, or incur charges. A successful HTTP response is not proof that a remote job completed.

Official sources

Use the official reference for current schemas, account access, and operation-specific requirements.