xAgents API

Every agent, as an API.

REST endpoints for content checks, policy checks, KYC verification, support answers, receivables and the regulatory calendar. One key, clear JSON, usage logs.

Bearer key auth • 60 requests per minute per key • Same human approval rules
How it works

the API in three moves

01 · Key

Create a key

In the app, open API keys and create a key per environment.

  • Shown once, stored hashed
  • Revoke any time
02 · Call

Call an endpoint

Send JSON, get JSON. Results match what your team sees in the app.

  • Clear error messages
  • Usage logged per endpoint
03 · Review

Review in xAgents

KYC cases, receivables and support threads created by the API appear in the app for people to act on.

  • One audit log
  • One Outbox
Under the hood

Engines built to be checked, not trusted blindly

Powered by XDQ AgentOS. Every result shows where it came from, and every action waits for a person.

Plain REST and JSON

No SDK required. Works from Node, Python, PHP, Java or a no-code tool.

Scoped keys

Keys belong to one company, are stored hashed and can be revoked instantly.

Embeddable widget

A support chat bubble for any website in one script tag.

Usage visibility

Calls and errors by endpoint for the last 30 days.

Who it is for

Built for the teams that carry the risk

Loan origination systems

Call KYC verify during onboarding and route low scores to manual review.

Marketing tools

Check every ad and message for risky claims before it is scheduled.

Billing systems

Push invoices as receivables and let the Collections Agent take over.

Workflows

Turn routine work into a system

Pre-publish content check
  1. 1Your CMS sends the draft
  2. 2API returns flags and fixes
  3. 3Block or warn on high severity
  4. 4Publish clean content
KYC at sign up
  1. 1App collects details and documents
  2. 2POST /kyc/verify
  3. 3Auto approve high scores into review queue
  4. 4Officer decides in xAgents
Invoices to collections
  1. 1Billing system issues invoice
  2. 2POST /collections/receivables
  3. 3Reminders drafted on schedule
  4. 4Payments recorded back
6
endpoints
60/min
per key rate limit
JSON
in and out
1
script tag for the widget
Trust

Secure by default

A person approves every action

Agents draft. People decide. Every approval, decision and sign off is in the audit log.

Your data stays yours

Your documents are never used to train models. Export or delete everything at any time.

Least data stored

ID numbers are masked, document text used for checks is not kept, and keys are stored hashed.

Built by a security team

XDQ Labs runs AI security engineering. The same rules apply to xAgents itself.

Web app

Dashboard, Outbox, reports and audit log for your team.

Start free →
API

REST endpoints for every agent, with keys and usage logs.

Read the docs →
Website widget

A support chat bubble in one line of code.

Add the widget →
FAQ

Questions, answered

Is there a sandbox?

Use the public demos on this site to try the engines, then create a key on the free trial.

What does the API cost?

API access is included in Growth and Pro plans. High volume use is priced on request.

Can I call the API from a browser?

No, keep keys on your server. Use the support widget for browser use.

Build compliance and operations into your own product.

API reference

Endpoints

Authentication

Create a key in the app under API keys. Send it as a Bearer token. Keys belong to one company. Limit: 60 requests per minute per key. Errors return { "error": { "message", "status" } } with status 400, 401, 402 (plan ended) or 429.

curl https://xagents.xdqlabs.com/api/v1/reg-watch?markets=IN \
  -H "Authorization: Bearer xdq_live_..."
POST/api/v1/content-check
Check content

Flags banned or risky claims and missing disclosures in ads, posts, messages and reports.

Request body
{ "text": "Guaranteed 30% monthly returns", "markets": ["SEBI-RA"] }
Response
{ "score": 50, "words": 4, "flags": [ { "id": "...", "title": "Assured or guaranteed returns", "severity": "high", "phrases": ["guaranteed"], "fix": "..." } ] }
POST/api/v1/policy-check
Check a policy

Scores a privacy or security policy against the laws of the markets you choose.

Request body
{ "text": "<full policy text>", "markets": ["IN", "AE"] }
Response
{ "score": 62, "results": [ { "id": "IN-01", "title": "DPDP notice before consent", "status": "partial", "fix": "..." } ] }
POST/api/v1/kyc/verify
Verify KYC details

Validates PAN, Aadhaar (last 4 or full for checksum), GSTIN, IFSC and Emirates ID, and matches them against document text. Creates a case for review unless save is false.

Request body
{ "applicant": "Riya Mehta", "entity_type": "individual", "country": "IN", "dob": "1992-03-14", "pan": "ABCPM1234K", "aadhaar": "9012", "documents": [ { "name": "pan.pdf", "type": "pan", "text": "..." } ] }
Response
{ "case_id": "k_...", "score": 94, "recommendation": "approve", "checks": [ { "id": "pan", "status": "pass", "detail": "Valid PAN format." } ], "masked": { "pan": "ABXXX12X4K" } }
POST/api/v1/support/ask
Ask the Support Agent

Answers from your knowledge base with sources, or hands off to your team.

Request body
{ "question": "How do I change my EMI date?", "visitor": "user@example.com" }
Response
{ "thread_id": "t_...", "answer": "...", "handoff": false, "confidence": 78, "sources": [ { "title": "EMI and repayment", "quote": "..." } ] }
POST/api/v1/collections/receivables
Add a receivable

Adds an amount owed. The Collections Agent drafts reminders on schedule for approval.

Request body
{ "name": "Rohan Mehta", "phone": "9876543210", "ref": "INV-1042", "amount": 25000, "currency": "INR", "due_date": "2026-11-30" }
Response
{ "data": { "id": "d_...", "balance": 25000, "status": "open" }, "reminders_queued": 0 }
GET/api/v1/collections/receivables?status=open
List receivables

Returns receivables with balance, days overdue and status.

Response
{ "data": [ { "id": "d_...", "name": "Rohan Mehta", "balance": 25000, "days_overdue": 8, "status": "open" } ] }
POST/api/v1/site-search
Search your indexed website

Direct answer plus ranked pages from the site you indexed in AI Site Search. Logged in your search insights.

Request body
{ "q": "refund policy" }
Response
{ "answer": "...", "answerUrl": "https://...", "confidence": 82, "results": [ { "url": "...", "title": "...", "snippet": "..." } ] }
GET/api/v1/search-insights
Search insights (Growth and Pro)

Top searches, content gaps and clicked pages on Growth. Pro adds trends, weak results, page click rates and content briefs. Returns 402 on plans without insights.

Response
{ "plan": "pro", "insights": { "total": 412, "top": [ ... ], "gaps": [ ... ] }, "advanced": { "trending": [ ... ], "briefs": [ ... ] } }
POST/api/v1/ai-visibility
AI visibility audit

Checks AI crawler access, llms.txt, sitemap, structured data and readable text for any public website. 10 per hour per key.

Request body
{ "url": "example.com" }
Response
{ "score": 64, "checks": [ ... ], "bots": [ { "bot": "GPTBot", "blocked": false } ], "llmsDraft": "# ..." }
POST/api/v1/ads
Write ads

Google responsive search ads and Meta and LinkedIn ads within platform limits, with risky claim flags.

Request body
{ "product": "Clinic booking software", "benefit": "Fill empty slots", "audience": "clinics", "offer": "Free trial", "platforms": ["google", "meta", "linkedin"] }
Response
{ "data": [ { "platform": "Google Search (responsive search ad)", "fields": { "Headline 1": "..." }, "flags": [] } ] }
GET/api/v1/reg-watch?markets=IN,AE
Regulatory calendar

Laws, status, key dates, breach deadlines and sources for each market.

Response
{ "data": [ { "id": "IN", "law": "...", "key_dates": [ ... ], "breach_notification": "..." } ] }
Support widget

Add your knowledge base in the app, then paste this before the closing body tag. Your company code is shown on the Support page.

<script src="https://xagents.xdqlabs.com/widget.js" data-org="your-company" async></script>