Skip to content
Console
Try one

    SDK origins

    Request and review browser origins before web SDK calls reach Thalovant API routes.

    SDK origins is the allowlist for browser apps that call Thalovant from a customer-owned site.

    Use it only when a browser runtime must make cross-origin SDK or API requests. For services, agents, CLIs, and jobs, keep using a backend or protected runtime with a secret store.

    Free workspaces do not need SDK origins for the starter voice path. Use Public hubs and Connections first; SDK origins appears when a workspace plan supports browser-origin review.

    1. Open SDK origins in the dashboard.
    2. Choose the workspace that owns the browser app.
    3. Request one exact origin such as https://app.example.com.
    4. Wait for review. A workspace reviewer receives a notification and email.
    5. Use the approved origin. Browser requests from that origin can use non-credentialed CORS.

    An origin must include https://, host, and optional port only. Do not include paths, queries, fragments, wildcards, http://, or null.

    AllowsDoes not allow
    Cross-origin API calls from the exact approved origin.Dashboard cookies or refresh-session flows from customer sites.
    Authorization and Idempotency-Key request headers.CSRF or dashboard-only refresh headers.
    Browser SDK requests from a known production domain.Wildcard domains, local files, or origins with paths and query strings.

    Use a backend when the browser needs secrets.

    Good fit

    A web app calls a small approved API surface with short-lived user auth and no long-lived hub identity in the bundle.

    Use a backend

    Identity creation, identity storage, setup material, broker passwords, refresh sessions, and payment flows stay server-side.

    Review every domain

    Request production, staging, and preview domains separately. Disable origins that no longer serve the app.

    SDK origins are not the security boundary for code that runs from a laptop, backend service, CI job, room device, or private server.

    RuntimeUse SDK origins?Safer pattern
    Laptop script or CLINoStore the identity file outside the repo and restrict it to the current user.
    Backend service or jobNoKeep tokens, setup material, and hub identity in a server-side secret store.
    Thalovant Voice deviceNoUse the private setup link or generated install command from Connections.
    Customer browser appYesRequest the exact production, staging, and preview origins separately.

    If a browser app needs a secret operation, put that operation behind your backend and call the backend from the browser.

    When an origin is requested, the requester and reviewer see a security notification. Email is also sent so the reviewer can open the dashboard and decide.

    When the review is complete, the requester receives a status notification and email. Approved origins start working after the CORS cache refreshes.

    SymptomCheck
    Browser preflight returns 400Confirm the exact origin is approved and uses https://.
    Works in staging but not productionRequest the production origin separately.
    Credentialed requests failUse the dashboard only for cookie-based flows; customer origins are non-credentialed.
    X-CSRF-Token is rejectedRemove dashboard-only headers from SDK origin requests.
    The app was moved to a new domainRequest the new origin, wait for review, then disable the old one.

    The SDK origin is ready when:

    • the origin is exact and approved;
    • the browser sends only supported headers;
    • long-lived secrets stay out of the browser bundle;
    • staging and production origins are tracked separately;
    • old or unused origins are disabled.