From sign-up to live, with no calls or meetings
Every step runs in USR Console. Your tech team can finish all of it in a day.
- Sign up as a partnerFill in the partner form on the website. You get a USR Console login straight away.2 minutes
- Get a sandboxA sandbox workspace with sample leads, tickets and employees is created for you.Instant
- Create API keysConsole → Developer → New client. Pick only the scopes you need.1 minute
- Build and testUse the samples below, and send test webhooks to your endpoint from the Console.Your pace
- Pass checks, go liveAutomatic checks run against your sandbox. When they pass, production keys unlock and you can list on Integrations.Automatic
Quick start
Three calls: get a token, check who you are, create a lead. Set USR_CLIENT_ID and USR_CLIENT_SECRET from USR Console first.
The lead now shows in USR CRM Lite in your sandbox, with its source, consent and any website visits linked to it.
Authentication
USR Apps uses OAuth 2.0 on USR SSO (OpenID Connect). Choose the flow that matches what you are building.
Your backend syncs data with one workspace. Tokens last 60 minutes; get a new one when it expires.
Your app acts for a signed-in USR user, or offers "Sign in with USR". The user and their admin approve the scopes.
| Item | Value |
|---|---|
| Token URL | https://auth.usrinfo.tech/realms/usr/protocol/openid-connect/token |
| Authorize URL | https://auth.usrinfo.tech/realms/usr/protocol/openid-connect/auth |
| Discovery | https://auth.usrinfo.tech/realms/usr/.well-known/openid-configuration |
| API base | https://api.usrinfo.tech/v1 · sandbox https://sandbox.api.usrinfo.tech/v1 |
Scopes
leads:readleads:writecontacts:readcontacts:writetickets:readtickets:writepeople:readevents:writewebhooks:manageAsk only for what you use. Customers see the scope list before they approve your app, and fewer scopes are approved faster.
API reference
The full contract is in the OpenAPI 3.1 file. Import it into Postman, Insomnia or your code generator.
| Method | Path | What it does | Scope |
|---|
Lead body
The same shape the USR website and login page send, so every source looks alike in USR CRM Lite.
Conventions
Lists return data and next_cursor. Pass ?cursor= until it is null. limit is 1–200, default 50.
Use ?updated_since= with the time of your last sync (ISO 8601, UTC) to fetch only what changed.
Send an Idempotency-Key on every POST. A retry with the same key returns the first result for 24 hours.
The version is in the URL (/v1). New fields can appear at any time, so ignore fields you do not know. Breaking changes get a new version and 12 months' notice.
Times are ISO 8601 in UTC. Amounts are in the smallest unit (paise, cents) with a currency code.
Production data is hosted in India. Your workspace region is returned by GET /me.
Errors and rate limits
Errors use the standard problem format (RFC 9457) with a request_id. Include it when you raise a ticket.
| Status | Meaning | What to do |
|---|---|---|
400 | The body failed validation | Fix the fields listed in errors |
401 | Token missing, expired, or a scope is missing | Get a new token; check the scopes on your client |
404 | Not found in this workspace | Check the id and the workspace your token belongs to |
409 | Same Idempotency-Key, different body | Use a new key for a new request |
429 | Too many requests | Wait for the seconds in Retry-After, then retry |
5xx | Something failed on our side | Retry with backoff (1 s, 2 s, 4 s…) using the same Idempotency-Key |
Limits: 600 requests a minute per client in production, 120 in the sandbox. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.
Webhooks
Subscribe once and USR calls your endpoint when something happens. Create subscriptions in USR Console or with POST /webhooks.
What you receive
Check the signature
Every call has X-USR-Signature: t=<unix time>,v1=<hex>. Compute HMAC-SHA256 of t + "." + raw body with your signing secret, compare in constant time, and reject anything older than 5 minutes.
id to skip duplicates and occurred_at to order them.Website kit
Two snippets connect any website to USR CRM Lite and USR Sales Assistant: visitor journeys and lead forms. Both use a publishable site key (pk_…) that can only create leads and send events, and only from the website addresses you allow in USR Console.
1. Visitor tracking (after cookie consent)
2. Lead form
Sign in with USR
Let USR customers open your app with their USR login. Use any OpenID Connect library with the discovery URL above, the authorization code flow and PKCE. You receive sub, email, name and workspace_id in the ID token.
Recipes
Sync new leads from your system into USR every 10 minutes
Raise a USR Desk ticket from your app
Keep your user list in step with USR HRIS
Security and data protection
USR is certified to ISO/IEC 27001 and ISO/IEC 42001 and is DPDP ready. Partners who connect to customer data follow the same rules:
- Keep client secrets and signing secrets in a secrets manager, never in code, browsers or mobile apps.
- Use HTTPS (TLS 1.2 or later) for every webhook endpoint.
- Ask for the fewest scopes, and keep only the data your feature needs.
- Send consent with every lead:
consent.contact,captured_atand the exact text shown. - Delete a person's data within 30 days when USR sends a
contact.updatedevent witherased: true. - Report a suspected security issue within 24 hours to security@usrinfo.tech.
Certification and go-live
When you click Request production access in USR Console, these checks run automatically against your sandbox. You see the result in minutes.
| Check | Passes when |
|---|---|
| Token handling | Tokens are reused until they expire, not fetched for every call |
| Idempotency | Every POST in the last 7 days carried an Idempotency-Key |
| Rate limits | Your client backed off after a 429 and never exceeded the limit for long |
| Webhooks | Your endpoint verified the test signature, rejected a bad one and answered within 10 seconds |
| Consent | Every lead created carried consent fields |
| Scopes | Every scope you hold was used at least once |
| Listing | Name, logo, description, support email, privacy policy and terms are filled in |
Help and status
Open a ticket in USR Desk with your request_id. Most answers arrive automatically from the knowledge base. Raise a ticket →
Ask how-to questions about the API in plain words on the website or inside any USR app. About USR Assist →
New fields and endpoints are listed in USR Console → Developer → Changelog, and sent to your developer email.
support@usrinfo.tech for anything the ticket desk cannot answer.