curl --request PUT \
--url https://api.opper.ai/management/v1/dynamic-routes/{name}/draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"graph": {}
}'import requests
url = "https://api.opper.ai/management/v1/dynamic-routes/{name}/draft"
payload = { "graph": {} }
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({graph: {}})
};
fetch('https://api.opper.ai/management/v1/dynamic-routes/{name}/draft', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"draft": {
"graph": {},
"layout": {},
"revision": 123,
"validation": "<array>"
},
"route": {
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"draft_revision": 123,
"invocation_model": "<string>",
"name": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"uuid": [
123
],
"deleted_at": "2023-11-07T05:31:56Z",
"draft_graph": {},
"draft_layout": {},
"draft_validation": "<array>"
},
"version_count": 123,
"active_version": {
"created_at": "2023-11-07T05:31:56Z",
"note": "<string>",
"uuid": [
123
],
"version_number": 123
},
"latest_version_number": 123
},
"meta": {
"issues": [
{
"code": "<string>",
"message": "<string>",
"severity": "<string>",
"field": "<string>",
"node_id": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}{
"allowed_plans": [
"<string>"
],
"current_plan": "<string>",
"error": "<string>",
"required_scope": "<string>"
}{
"error": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}Replace the draft
Replaces the route’s draft graph (and optionally its description and layout). Live traffic is untouched until the draft is deployed. Validation issues come back in meta.issues and on data.draft.validation; a draft with errors is saved but deploy refuses it. Requires the dynamic_routes:write scope.
curl --request PUT \
--url https://api.opper.ai/management/v1/dynamic-routes/{name}/draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"graph": {}
}'import requests
url = "https://api.opper.ai/management/v1/dynamic-routes/{name}/draft"
payload = { "graph": {} }
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({graph: {}})
};
fetch('https://api.opper.ai/management/v1/dynamic-routes/{name}/draft', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"draft": {
"graph": {},
"layout": {},
"revision": 123,
"validation": "<array>"
},
"route": {
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"draft_revision": 123,
"invocation_model": "<string>",
"name": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"uuid": [
123
],
"deleted_at": "2023-11-07T05:31:56Z",
"draft_graph": {},
"draft_layout": {},
"draft_validation": "<array>"
},
"version_count": 123,
"active_version": {
"created_at": "2023-11-07T05:31:56Z",
"note": "<string>",
"uuid": [
123
],
"version_number": 123
},
"latest_version_number": 123
},
"meta": {
"issues": [
{
"code": "<string>",
"message": "<string>",
"severity": "<string>",
"field": "<string>",
"node_id": "<string>"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}{
"allowed_plans": [
"<string>"
],
"current_plan": "<string>",
"error": "<string>",
"required_scope": "<string>"
}{
"error": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
},
"meta": {}
}Authorizations
Management API authentication. Pass an op-mak-… management token as a Bearer token. Runtime op-… API keys are rejected with 403 — they belong on the data-plane endpoints. Mint a management key from the platform UI under Settings → API keys.
Path Parameters
Route name
Body
The new draft graph (see DynamicRouteGraph). Validation issues come back in meta.issues; a draft with errors is saved but cannot be deployed.
New description. Omit to leave it unchanged.
Editor canvas positions keyed by element id. Opaque to the gateway.