From Agent Deployment to Catalog Entry
Five steps that can be fully automated - from an empty record to a published document.
Five steps that can be fully automated - from an empty record to a published document.
A catalog entry never comes out of nowhere - it always references an agent deployment. Register it first via Agent Deployments.
curl -X POST https://api.nexora.example/v1/agents \
-H "apikey: $NEXORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"deployment_tier": "production",
"title": "Support Triage Copilot",
"owning_team": { "business_unit": "Customer Experience", "team": "Support Engineering" },
"integration_count": 6,
"model_provider": "Anthropic Claude",
"available_from": "2026-09-01",
"chargeback": { "rate_percent": 3.5, "cost_center": "CC-4821" },
"compliance_certification": {
"cert_type": "SOC2",
"data_classification_level": "confidential",
"guardrail_policy_attached": "pii-redaction-v3",
"valid_until": "2027-04-30"
}
}'
The compliance_certification block is optional when registering a deployment, but mandatory for later publication. See Compliance Disclosures and Guardrails.
Model cards and architecture diagrams are attached to the agent deployment, not to a catalog entry. That way they're available to every catalog entry generated later.
curl -X POST https://api.nexora.example/v1/agents/agt_8f2c1a/artifacts \
-H "apikey: $NEXORA_API_KEY" \
-F "file=@model-card.pdf" \
-F "category=model_card" \
-F "order=1"
At least one model card (category=model_card) and one architecture diagram (category=architecture_diagram) are recommended. If the model card is missing, the template falls back to a neutral placeholder graphic.
Want to see the flow without code first? The Agent Catalog Generator accepts the same agent metadata through a form and produces a finished catalog entry via a language model - the call runs through the Kong AI Gateway.
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", "data_scope", "integrations", "compliance", "chargeback"]
}'
{
"id": "cat_4d9b2e",
"agent_id": "agt_8f2c1a",
"template_id": "tpl_classic",
"status": "in_progress",
"created_at": "2026-08-20T09:41:12Z"
}
Generation is asynchronous because artifacts need to be processed and the record laid out. Usually takes two to ten seconds.
Two paths lead to the finished document:
Event-driven (recommended). Subscribe to catalog_entry.completed; the webhook carries the catalog entry ID and the download link. See Webhooks.
Polling. Poll GET /catalog-entries/{id} with increasing backoff (1s, 2s, 4s, 8s) until status reaches completed:
curl https://api.nexora.example/v1/catalog-entries/cat_4d9b2e/record \
-H "apikey: $NEXORA_API_KEY" \
-o catalog-entry-support-triage.pdf
The link in record_url is valid for 24 hours. Store the document instead of passing the link around.
curl -X POST https://api.nexora.example/v1/catalog-entries/cat_4d9b2e/publish \
-H "apikey: $NEXORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "channels": ["internal-catalog", "governance-board"] }'
Before publishing, the API checks the compliance disclosures. If something's missing, you get 422:
{
"code": "compliance_disclosure_missing",
"message": "Compliance disclosures are missing for publication.",
"details": [
{ "field": "compliance_certification.valid_until", "reason": "missing" }
]
}
Add the missing figure on the agent deployment, regenerate the catalog entry, and publish again. A catalog entry that's already been generated is never changed after the fact - that keeps the history traceable.
agent_id is required; standalone catalog entries deliberately don't exist.template_id must belong to your tenant, otherwise 404.status: "completed", /record returns 409.