curl --request PUT \
--url https://api.usenexio.com/api/v1/engines/{engine_slug}/config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"schema_version": 1,
"egress_manifest_version": "e62231e13f8e38cc5baf7001c3476229a0527c3a8bd3a02adc2738bd9df4fdf6",
"pack_key": "harbor_vendor_review",
"pack_version": 1,
"privacy_policy": {
"mode": "default_deny"
},
"domain_key": "vendor",
"response_type": "VENDOR_REVIEW",
"analysis_instructions": "Review the supplier profile against each enabled dimension. Report every gap with a severity (HIGH, MEDIUM, LOW), a category, a title, a description and a recommendation.",
"analysis_dimensions": [
{
"key": "security",
"label": "Security",
"enabled": true
},
{
"key": "financial",
"label": "Financial health",
"enabled": true
}
],
"profile_extraction_rules": [],
"summary_counter_rules": [],
"extra_result_sections": [],
"deterministic_checks": [],
"overlay_categories": [],
"requirement_rules": [],
"deterministic_gap_rules": [],
"knowledge_overlay": []
}
}
'import requests
url = "https://api.usenexio.com/api/v1/engines/{engine_slug}/config"
payload = { "config": {
"schema_version": 1,
"egress_manifest_version": "e62231e13f8e38cc5baf7001c3476229a0527c3a8bd3a02adc2738bd9df4fdf6",
"pack_key": "harbor_vendor_review",
"pack_version": 1,
"privacy_policy": { "mode": "default_deny" },
"domain_key": "vendor",
"response_type": "VENDOR_REVIEW",
"analysis_instructions": "Review the supplier profile against each enabled dimension. Report every gap with a severity (HIGH, MEDIUM, LOW), a category, a title, a description and a recommendation.",
"analysis_dimensions": [
{
"key": "security",
"label": "Security",
"enabled": True
},
{
"key": "financial",
"label": "Financial health",
"enabled": True
}
],
"profile_extraction_rules": [],
"summary_counter_rules": [],
"extra_result_sections": [],
"deterministic_checks": [],
"overlay_categories": [],
"requirement_rules": [],
"deterministic_gap_rules": [],
"knowledge_overlay": []
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
schema_version: 1,
egress_manifest_version: 'e62231e13f8e38cc5baf7001c3476229a0527c3a8bd3a02adc2738bd9df4fdf6',
pack_key: 'harbor_vendor_review',
pack_version: 1,
privacy_policy: {mode: 'default_deny'},
domain_key: 'vendor',
response_type: 'VENDOR_REVIEW',
analysis_instructions: 'Review the supplier profile against each enabled dimension. Report every gap with a severity (HIGH, MEDIUM, LOW), a category, a title, a description and a recommendation.',
analysis_dimensions: [
{key: 'security', label: 'Security', enabled: true},
{key: 'financial', label: 'Financial health', enabled: true}
],
profile_extraction_rules: [],
summary_counter_rules: [],
extra_result_sections: [],
deterministic_checks: [],
overlay_categories: [],
requirement_rules: [],
deterministic_gap_rules: [],
knowledge_overlay: []
}
})
};
fetch('https://api.usenexio.com/api/v1/engines/{engine_slug}/config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"config": {},
"config_updated_at": "2023-11-07T05:31:56Z",
"config_updated_by": "<string>",
"engine_type": "comparison",
"preset": {},
"request_schema": {
"name": "<string>",
"type": "string",
"required": true,
"nullable": true,
"description": "<string>",
"children": "<array>",
"enum_values": [
"<string>"
],
"privacy": {},
"privacy_policy": {},
"omit_from_example": true
}
}Update engine config
Replace the engine’s draft configuration. Runs execute a published version; three settings (expose_warnings, notify_on_supersede, quotas.requests_per_minute) are read from the saved configuration. Organization API key only.
curl --request PUT \
--url https://api.usenexio.com/api/v1/engines/{engine_slug}/config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"schema_version": 1,
"egress_manifest_version": "e62231e13f8e38cc5baf7001c3476229a0527c3a8bd3a02adc2738bd9df4fdf6",
"pack_key": "harbor_vendor_review",
"pack_version": 1,
"privacy_policy": {
"mode": "default_deny"
},
"domain_key": "vendor",
"response_type": "VENDOR_REVIEW",
"analysis_instructions": "Review the supplier profile against each enabled dimension. Report every gap with a severity (HIGH, MEDIUM, LOW), a category, a title, a description and a recommendation.",
"analysis_dimensions": [
{
"key": "security",
"label": "Security",
"enabled": true
},
{
"key": "financial",
"label": "Financial health",
"enabled": true
}
],
"profile_extraction_rules": [],
"summary_counter_rules": [],
"extra_result_sections": [],
"deterministic_checks": [],
"overlay_categories": [],
"requirement_rules": [],
"deterministic_gap_rules": [],
"knowledge_overlay": []
}
}
'import requests
url = "https://api.usenexio.com/api/v1/engines/{engine_slug}/config"
payload = { "config": {
"schema_version": 1,
"egress_manifest_version": "e62231e13f8e38cc5baf7001c3476229a0527c3a8bd3a02adc2738bd9df4fdf6",
"pack_key": "harbor_vendor_review",
"pack_version": 1,
"privacy_policy": { "mode": "default_deny" },
"domain_key": "vendor",
"response_type": "VENDOR_REVIEW",
"analysis_instructions": "Review the supplier profile against each enabled dimension. Report every gap with a severity (HIGH, MEDIUM, LOW), a category, a title, a description and a recommendation.",
"analysis_dimensions": [
{
"key": "security",
"label": "Security",
"enabled": True
},
{
"key": "financial",
"label": "Financial health",
"enabled": True
}
],
"profile_extraction_rules": [],
"summary_counter_rules": [],
"extra_result_sections": [],
"deterministic_checks": [],
"overlay_categories": [],
"requirement_rules": [],
"deterministic_gap_rules": [],
"knowledge_overlay": []
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
schema_version: 1,
egress_manifest_version: 'e62231e13f8e38cc5baf7001c3476229a0527c3a8bd3a02adc2738bd9df4fdf6',
pack_key: 'harbor_vendor_review',
pack_version: 1,
privacy_policy: {mode: 'default_deny'},
domain_key: 'vendor',
response_type: 'VENDOR_REVIEW',
analysis_instructions: 'Review the supplier profile against each enabled dimension. Report every gap with a severity (HIGH, MEDIUM, LOW), a category, a title, a description and a recommendation.',
analysis_dimensions: [
{key: 'security', label: 'Security', enabled: true},
{key: 'financial', label: 'Financial health', enabled: true}
],
profile_extraction_rules: [],
summary_counter_rules: [],
extra_result_sections: [],
deterministic_checks: [],
overlay_categories: [],
requirement_rules: [],
deterministic_gap_rules: [],
knowledge_overlay: []
}
})
};
fetch('https://api.usenexio.com/api/v1/engines/{engine_slug}/config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"config": {},
"config_updated_at": "2023-11-07T05:31:56Z",
"config_updated_by": "<string>",
"engine_type": "comparison",
"preset": {},
"request_schema": {
"name": "<string>",
"type": "string",
"required": true,
"nullable": true,
"description": "<string>",
"children": "<array>",
"enum_values": [
"<string>"
],
"privacy": {},
"privacy_policy": {},
"omit_from_example": true
}
}Authorizations
Send the key as Authorization: Bearer <key>. Two kinds of key exist.
Organization keys are issued in the portal (Settings, then API keys),
each bound to one environment, shaped nx_<environment slug>_<64 hex>. They carry
no capabilities and pass every capability check, with one exception:
routes under /records, /actions, /operations,
/api/v1/engines/{id}/opportunities, /api/v1/graph and
/api/v1/catalog/documents accept an
organization key only when its environment is live, and refuse any
other with 403 scoped_key_required. Revocation takes effect within 60
seconds.
Scoped keys are issued by Nexio on request, shaped
nxsk_v1_<24 hex key id>_<43 character secret>. Each is bound to one
org, one environment, a set of engines and a set of capabilities. A
malformed, unknown or revoked nxsk_ key fails with 401 and is never
retried as an organization key. Revocation takes effect on the next
request. A scoped key without a route's capability gets 403
insufficient_capability; a scoped key not bound to the engine gets 403
engine_binding_forbidden.
Key-grantable capabilities: engines:read, runs:write, runs:read,
runs:defensibility:read, runs:test, catalog:read,
catalog:documents:read, webhooks:manage, conversations:use,
conversations:export, records:read, records:opportunities:run,
actions:write, actions:read, graph:read, records:analyze.
Routes that accept organization keys only (every scoped key gets 403
insufficient_capability): environment management, engine create,
update, configuration and publish, and conversation instance
authoring. Each operation description names the capability a scoped
key needs.
Path Parameters
Engine identifier slug (e.g. default).
Body
Full replacement config. Must conform to the engine's type-specific schema. Use the validate endpoint to check before saving.
Response
Config updated successfully.
Engine configuration with audit metadata. The config structure
varies by engine_type. The per-engine Contract page on
platform.usenexio.com is the integration guide
for your engine's typed request schema.
Engine configuration object. Structure depends on engine_type.
When the config was last saved (creating the engine counts as a save). null when no save time is recorded.
Who last saved the config, for example the API key ID for an API save. null when none is recorded.
Engine type. Includes the retired converse and property_risk values, which
cannot be created but are still readable on engine rows that predate their
retirement.
comparison, matching, entity_analysis, diligence, triage, opportunity, converse, property_risk Default configuration template for this engine type. Null when the engine type has no registered default, which is the case for the retired converse and property_risk types.
Typed request schema for engine types whose run input is a typed structure. Omitted otherwise.
Hide child attributes
Hide child attributes
string, integer, number, boolean, object, array, enum, datetime, uuid, any