Skip to content
Q.E.E.TDevelopers

Tooling

SDKs & clients

Official SDKs, calling the REST API directly, and generating a typed client from the OpenAPI specs.

There are three good ways to call the Qeet APIs: an official SDK, the REST API directly, or a client you generate from our OpenAPI specs.

Official SDKs

Each product has Node.js and React SDK repositories in development — @qeet-id/node and @qeet-id/react, and the equivalents for Qeet Notify and Qeet Pay. The Qeet ID React SDK is the furthest along: drop-in authentication components and a typed browser client, including an embeddable <UserButton /> and hooks for sessions and organizations.

ProductPackagePlatformStatus
Qeet ID@qeet-id/nodeNode.jsIn developmentsource
Qeet ID@qeet-id/reactReactIn developmentsource
Qeet Notify@qeet-notify/nodeNode.jsIn developmentsource
Qeet Notify@qeet-notify/reactReactIn developmentsource
Qeet Pay@qeet-pay/nodeNode.jsIn developmentsource
Qeet Pay@qeet-pay/reactReactIn developmentsource

Call the REST API directly

Every endpoint is a plain HTTPS + JSON call, so a thin wrapper over your language’s HTTP client is all you need:

const qeet = (apiKey) => ({
  base: "https://api.id.qeet.in",
  async get(path) {
    const res = await fetch(this.base + path, {
      headers: { Authorization: `ApiKey ${apiKey}` },
    });
    if (!res.ok) throw new Error((await res.json()).error.code);
    return res.json();
  },
});

const me = await qeet("qk_live_...").get("/v1/auth/me");
import requests

class Qeet:
    def __init__(self, api_key, base="https://api.id.qeet.in"):
        self.base, self.key = base, api_key

    def get(self, path):
        r = requests.get(self.base + path,
                         headers={"Authorization": f"ApiKey {self.key}"})
        r.raise_for_status()
        return r.json()

me = Qeet("qk_live_...").get("/v1/auth/me")
func get(key, path string, v any) error {
    req, _ := http.NewRequest("GET", "https://api.id.qeet.in"+path, nil)
    req.Header.Set("Authorization", "ApiKey "+key)
    res, err := http.DefaultClient.Do(req)
    if err != nil {
        return err
    }
    defer res.Body.Close()
    return json.NewDecoder(res.Body).Decode(v)
}

See Authentication for the header each product expects and Errors & rate limits for the response envelope.

Generate a typed client

Because every API publishes a versioned OpenAPI 3.1 document, you can generate a fully-typed client and keep it in sync with each release:

# Typed TypeScript types straight from the spec
npx openapi-typescript \
  https://api.qeet.in/specs/qeet-id/auth.yaml \
  -o ./qeet-id-auth.d.ts
# A full client in your language of choice
openapi-generator-cli generate \
  -i https://api.qeet.in/specs/qeet-id/auth.yaml \
  -g typescript-fetch \
  -o ./qeet-id-sdk

Download the specs

The raw specs are served straight from this site — point any OpenAPI tool at them:

APISpec
Qeet ID · Authentication & Access/specs/qeet-id/auth.yaml
Qeet ID · Identity Management/specs/qeet-id/management.yaml
Qeet ID · Federation/specs/qeet-id/federation.yaml
Qeet ID · Developer/specs/qeet-id/developer.yaml
Qeet ID · Operations/specs/qeet-id/operations.yaml
Qeet Notify · Messaging/specs/qeet-notify/messaging.yaml
Qeet Notify · Subscribers/specs/qeet-notify/subscribers.yaml
Qeet Notify · Deliverability/specs/qeet-notify/deliverability.yaml
Qeet Notify · Operations/specs/qeet-notify/operations.yaml
Qeet Pay · Payments/specs/qeet-pay/payments.yaml
Qeet Pay · Payouts & Money/specs/qeet-pay/payouts.yaml
Qeet Pay · Billing/specs/qeet-pay/billing.yaml
Qeet Pay · GST & Tax/specs/qeet-pay/tax.yaml
Qeet Pay · Commerce & Embedded Finance/specs/qeet-pay/commerce.yaml
Qeet Pay · Risk & Compliance/specs/qeet-pay/risk.yaml
Qeet Pay · Platform/specs/qeet-pay/platform.yaml

The Qeet ID specs are also published as a single bundled document — /specs/qeet-id.yaml — which is what the interactive reference renders.

Postman

Prefer Postman? Import the maintained Qeet ID collection — the same folder structure (Auth, Users, Tenants, RBAC, OIDC, SAML, SCIM, API Keys, Webhooks…) you see in the reference sidebar, with request scripts that capture IDs and tokens for you.

Download Postman collection

In Postman, choose Import → File and select the downloaded qeet-id.postman_collection.json. Set the collection’s baseUrl variable to the environment you’re targeting (see Authentication).

Start typing to search the documentation.

↑↓ navigate↵ open