Getting Started

From access, through your first application, to a fully generated catalog entry - this guide walks you through the complete onboarding.

1. Request Access

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.

2. Create an Application

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.

3. Generate an API Key

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.

4. Your First Call

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 }
}

5. Your First Catalog Entry

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.

Error Format

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" }
  ]
}
HTTPcodeMeaning
400validation_failedRequest doesn't match the schema
401not_authenticatedKey is missing, revoked or invalid
403scope_missingThe key lacks the required scope
404not_foundAgent, catalog entry or session doesn't exist
409conflictState doesn't allow it, e.g. publishing a draft
422compliance_disclosure_missingA required disclosure is missing
429too_many_requestsRate limit reached

Rate Limits

EnvironmentRequests per minuteCatalog generations per hour
Sandbox6020
Production600200

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.

Ready for Your First Integration?

Register, create an application, and generate your first catalog entry in under ten minutes.