---
title: "Getting Started"
description: "From access to your first generated catalog entry in ten minutes."
url: "https://nexora.apim.eu/getting-started"
image: "https://nexora.apim.eu/_og/d/c_Ocean.takumi,title_Getting+Started,description_From+access+to+your+first+generated+catalog+entry+in+ten+minutes.,props_eyJ0aGVtZSI6eyJtb2RlIjoiZGFyayIsImNvbG9ycyI6eyJwcmltYXJ5IjoiIzM5RkYxNCJ9fX0,p_Ii9nZXR0aW5nLXN0YXJ0ZWQi,s_4Ukl-U5dimVjvX_x.png"
---

## 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](#_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](#_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](#_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.

```text
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](#_4-your-first-call)

The key goes along with every call in the `apikey` header. The quickest useful call is listing your agent deployments:

```bash
curl "https://api.nexora.example/v1/agents?status=active&limit=5" \
  -H "apikey: $NEXORA_API_KEY"
```

```json
{
  "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](#_5-your-first-catalog-entry)

With an agent ID and a template, you generate a catalog entry:

```bash
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](https://nexora.apim.eu/guides/agent-catalog-workflow).

## [Error Format](#error-format)

All APIs respond the same way on error:

```json
{
  "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                              |

## [Rate Limits](#rate-limits)

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

## Ready for Your First Integration?

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

[Request Access](https://nexora.apim.eu/getting-started)[View API Catalog](https://nexora.apim.eu/apis)