curl --request POST \
--url https://ndi-api.nace.ai/v1/domains/generate \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"description": "<string>"
}
'{
"ontology": {
"allow_other": false,
"edge_types": [
{
"description": "<string>",
"from_types": [
"<string>"
],
"name": "<string>",
"to_types": [
"<string>"
],
"property_hints": [
"<string>"
]
}
],
"node_types": [
{
"description": "<string>",
"name": "<string>",
"tier": 3,
"identifier_hints": [
"<string>"
],
"property_hints": [
"<string>"
]
}
]
},
"suggested_display_name": "<string>",
"suggested_slug": "<string>",
"taxonomy": {
"allow_other": true,
"classes": [
{
"description": "<string>",
"document_type": "<string>",
"group": "<string>",
"subgroup": "<string>",
"aliases": [
"<string>"
]
}
]
},
"validation": {
"effective_class_count": 123,
"effective_edge_type_count": 123,
"effective_node_type_count": 123,
"valid": true,
"errors": [
{
"code": "<string>",
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}generate_domain
Draft a taxonomy and ontology from a domain description. Cost class: slow.
Synchronous and non-persisting: the model proposes vocabularies the
author edits, then posts to POST /v1/domains. Nothing is written to the
database and no job is created. Kept off MCP because authoring is a reviewed
human act, not an agent-loop step.
curl --request POST \
--url https://ndi-api.nace.ai/v1/domains/generate \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"description": "<string>"
}
'{
"ontology": {
"allow_other": false,
"edge_types": [
{
"description": "<string>",
"from_types": [
"<string>"
],
"name": "<string>",
"to_types": [
"<string>"
],
"property_hints": [
"<string>"
]
}
],
"node_types": [
{
"description": "<string>",
"name": "<string>",
"tier": 3,
"identifier_hints": [
"<string>"
],
"property_hints": [
"<string>"
]
}
]
},
"suggested_display_name": "<string>",
"suggested_slug": "<string>",
"taxonomy": {
"allow_other": true,
"classes": [
{
"description": "<string>",
"document_type": "<string>",
"group": "<string>",
"subgroup": "<string>",
"aliases": [
"<string>"
]
}
]
},
"validation": {
"effective_class_count": 123,
"effective_edge_type_count": 123,
"effective_node_type_count": 123,
"valid": true,
"errors": [
{
"code": "<string>",
"message": "<string>",
"path": "<string>"
}
]
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}Authorizations
Body
Ask the model for an unsaved taxonomy + ontology draft.
Nothing is persisted: the caller edits the draft, then posts it to
POST /v1/domains. Optional display_name / slug only seed the
suggested identity fields returned alongside the vocabularies.
What kinds of files belong in this domain — the classifier-facing brief.
1 - 4000Optional name hint used when suggesting a display name and slug.
1 - 200Optional slug hint. When omitted, one is derived from the display name or description.
64^[a-z0-9]+(?:_[a-z0-9]+)*$Response
Successful Response
An unsaved draft ready for the authoring UI to edit and then create.
The graph shape. Closed node and edge types with declared domain/range.
allow_other is the ontology's counterpart to :attr:Taxonomy.allow_other,
and unlike it, this one can be turned off: a file must always be
classifiable, but an entity need not always be extractable.
Show child attributes
Show child attributes
1 - 20064^[a-z0-9]+(?:_[a-z0-9]+)*$The classification vocabulary.
Show child attributes
Show child attributes
Publish-gate check on the normalized draft — always run so the UI knows it can create cleanly.
Show child attributes
Show child attributes