Getting Started
From access, through your first application, to a fully generated catalog entry - this guide walks you through the complete onboarding.
From access, through your first application, to a fully generated catalog entry - this guide walks you through the complete onboarding.
Register with your business email address. We verify the domain against your company's registered workspace; approval usually happens the next business day.
Until then, the sandbox is open to you. It contains a full sample deployment inventory of twelve agents, thirty access requests and a handful of evaluation sessions. Sandbox data resets every night.
Every integration is its own application. Create one under My Apps and choose which APIs it's allowed to use.
Use a separate application per environment - that way a single key can be revoked without interrupting production.
For each application you generate an API key. It's shown exactly once - after that it can't be read again, only replaced.
nx_live_7f3c9a24b1e84d05a6c2f8e1d3b70945
Each key has the scopes it's allowed to use attached to it. Grant only what the given process actually needs: an import job doesn't need write access to chargebacks.
Keep the key in a secret store, not in version control.
The key goes along with every call in the apikey header. The quickest useful call is listing your agent deployments:
curl "https://api.nexora.example/v1/agents?status=active&limit=5" \
-H "apikey: $NEXORA_API_KEY"
{
"data": [
{
"id": "agt_8f2c1a",
"deployment_tier": "production",
"title": "Support Triage Copilot",
"owning_team": { "business_unit": "Customer Experience", "team": "Support Engineering" },
"integration_count": 6,
"status": "active"
}
],
"page": { "count": 1, "total": 12, "next_cursor": null }
}
With an agent ID and a template, you generate a catalog entry:
curl -X POST https://api.nexora.example/v1/catalog-entries \
-H "apikey: $NEXORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "agt_8f2c1a",
"template_id": "tpl_classic",
"sections": ["capabilities", "integrations", "compliance", "chargeback"]
}'
Generation runs asynchronously. The response returns status in_progress; once it reaches completed, GET /catalog-entries/{id}/record returns the finished document. Alternatively, subscribe to the catalog_entry.completed event via webhook.
Details on templates, sections and compliance disclosures are in the guide From Agent Deployment to Catalog Entry.
All APIs respond the same way on error:
{
"code": "compliance_disclosure_missing",
"message": "Compliance disclosures are missing for publication.",
"details": [
{ "field": "compliance_certification.valid_until", "reason": "expired" },
{ "field": "compliance_certification.cert_type", "reason": "missing" }
]
}
| HTTP | code | Meaning |
|---|---|---|
| 400 | validation_failed | Request doesn't match the schema |
| 401 | not_authenticated | Key is missing, revoked or invalid |
| 403 | scope_missing | The key lacks the required scope |
| 404 | not_found | Agent, catalog entry or session doesn't exist |
| 409 | conflict | State doesn't allow it, e.g. publishing a draft |
| 422 | compliance_disclosure_missing | A required disclosure is missing |
| 429 | too_many_requests | Rate limit reached |
| Environment | Requests per minute | Catalog generations per hour |
|---|---|---|
| Sandbox | 60 | 20 |
| Production | 600 | 200 |
Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. On 429, a well-built client waits the number of seconds stated in Retry-After instead of retrying immediately.
Register, create an application, and generate your first catalog entry in under ten minutes.