API reference · 5 endpoints

Ontology

The entity and relationship type system for a namespace.

GET/v1/default/namespaces/{namespace_id}/ontology

Get namespace ontology

The namespace's entity classes and typed relations, plus its resolved ontology_mode. Empty lists when no ontology is defined.

Parameters

namespace_idstringpathrequired
curl -X GET "https://api.illumina.sh/v1/default/namespaces/demo/ontology" \
  -H "Authorization: Bearer $ILLUMINA_API_KEY"
Response · 200
{
  "classes": [
    {
      "id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "name": "Demo namespace"
    }
  ],
  "relations": [
    {
      "id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "name": "Demo namespace",
      "from_class": "from class",
      "to_class": "to class",
      "from_class_id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "to_class_id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "cardinality": "one-to-one"
    }
  ],
  "mode": "advisory"
}

400 · 401 · 402 · 403 · 404 · 405 · 409 · 410 · 422see error reference

PUT/v1/default/namespaces/{namespace_id}/ontology

Replace namespace ontology

Whole-document replace. Classes/relations carrying a known id (from a prior GET) update in place, others match case-insensitively by name, leftovers insert, and items absent from the payload are deleted (entities of a deleted class degrade to unclassified). Rejects duplicate class names and relations whose endpoints do not name a class in the payload.

Parameters

namespace_idstringpathrequired

Request body · application/json

classesOntologyClassInput[]default []
idstring (uuid) | null
namestringrequired
descriptionstringdefault ""
propertiesOntologyClassProperty[]default []
namestringrequired
type"string" | "integer" | "decimal" | "boolean" | "date" | "datetime"required
descriptionstring | null
iconstring | null
colorstring | null
relationsOntologyRelationInput[]default []
idstring (uuid) | null
namestringrequired
from_classstringrequired
to_classstringrequired
cardinality"one-to-one" | "one-to-many" | "many-to-one" | "many-to-many"default "many-to-many"
descriptionstringdefault ""
curl -X PUT "https://api.illumina.sh/v1/default/namespaces/demo/ontology" \
  -H "Authorization: Bearer $ILLUMINA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "classes": [],
  "relations": []
}'
Response · 200
{
  "classes": [
    {
      "id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "name": "Demo namespace"
    }
  ],
  "relations": [
    {
      "id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "name": "Demo namespace",
      "from_class": "from class",
      "to_class": "to class",
      "from_class_id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "to_class_id": "8b9e2f0a-4c1d-4e5f-9a2b-3c4d5e6f7a8b",
      "cardinality": "one-to-one"
    }
  ],
  "mode": "advisory"
}

400 · 401 · 402 · 403 · 404 · 405 · 409 · 410 · 422see error reference

POST/v1/default/namespaces/{namespace_id}/ontology/classify

Classify unclassified entities

Backfill ontology classes onto unclassified entities from the CURRENT ontology (batched LLM calls; only NULL class assignments are filled). Asynchronous when a workflow engine is wired (202), synchronous otherwise. 400 when the namespace has no ontology classes.

Parameters

namespace_idstringpathrequired
curl -X POST "https://api.illumina.sh/v1/default/namespaces/demo/ontology/classify" \
  -H "Authorization: Bearer $ILLUMINA_API_KEY"
Response · 200
{
  "status": "status",
  "async": false,
  "classified": 1
}

400 · 401 · 402 · 403 · 404 · 405 · 409 · 410 · 422see error reference

POST/v1/default/namespaces/{namespace_id}/ontology/infer

Infer a draft ontology

Propose a draft ontology (classes + typed relations) from the namespace's extracted entities and co-occurrence graph via one LLM call. Asynchronous when a workflow engine is wired (202 + operation_id; poll the status endpoint), synchronous otherwise. The draft is stored for review — never auto-applied.

Parameters

namespace_idstringpathrequired
curl -X POST "https://api.illumina.sh/v1/default/namespaces/demo/ontology/infer" \
  -H "Authorization: Bearer $ILLUMINA_API_KEY"
Response · 200
{
  "status": "status",
  "async": false,
  "draft": {
    "classes": [],
    "relations": []
  }
}

400 · 401 · 402 · 403 · 404 · 405 · 409 · 410 · 422see error reference

GET/v1/default/namespaces/{namespace_id}/ontology/infer/status

Get ontology inference status

Inference lifecycle (never/running/ready/failed) with the stored draft inline when ready.

Parameters

namespace_idstringpathrequired
curl -X GET "https://api.illumina.sh/v1/default/namespaces/demo/ontology/infer/status" \
  -H "Authorization: Bearer $ILLUMINA_API_KEY"
Response · 200
{
  "status": "never"
}

400 · 401 · 402 · 403 · 404 · 405 · 409 · 410 · 422see error reference

Search docs

Search the documentation