HydraCore
API by router

Recipes

List Recipes

GET
/v1/recipes

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response
[index: integer]?
Example Request
curl -X GET 'https://example.com/v1/recipes'
Example Response
[  {    "approval_rules": {},    "channel_config": {},    "channel_types": [],    "compliance_config": {},    "connection_requirements": [],    "created_at": "2019-08-24T14:15:22Z",    "data_access": {},    "description": "string",    "hosting_mode": "dedicated",    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "is_active": true,    "is_platform_template": false,    "manifest_id": "string",    "mcp_servers": [],    "model_policy": {},    "module_config": {},    "name": "string",    "onboarding_flow_id": "5678512d-5385-4d91-b175-d714095019d8",    "rules_template_id": "2f58bba2-6f2c-4b37-bef9-a3182f3427ec",    "shared_node_capacity": 50,    "sidecars": [      null    ],    "skills": [      null    ],    "source_instance_id": "5f29be29-2815-47a9-b288-7f260493a004",    "system_prompt": "string",    "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",    "trigger_templates": [],    "updated_at": "2019-08-24T14:15:22Z",    "voice_config": {},    "workflow_slugs": [      null    ]  }]

Create Recipe

POST
/v1/recipes

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
approval_rules?|null
channel_config?|null
channel_types?array<string>|
Default[]
compliance_config?|null
connection_requirements?array<string>|
Default[]
data_access?|null
description?string|null
hosting_mode?Hosting Mode
Match^(dedicated|shared)$
Default"dedicated"
manifest_id?|

Custom manifest ID (e.g., leslie-agent)

mcp_servers?array<string>|
Default[]
model_policy?|null
module_config?|null
name*Name
Lengthlength <= 200
onboarding_flow_id?|null
rules_template_id?|null
shared_node_capacity?|
Default50
sidecars?array<>|

Sidecar declarations [{name, port, path, health, runtime}]

skills?array<string>
Default[]
system_prompt?string|null
trigger_templates?array<>|null
voice_config?|null
workflow_slugs?array<string>
Default[]

Response Body

Successful Response

application/json
  1. response
approval_rules*|null
channel_config*|null
channel_types?array<unknown>
Default[]
compliance_config?|null
connection_requirements?array<unknown>
Default[]
created_at*Created At
Formatdate-time
data_access?|null
description*string|null
hosting_mode?Hosting Mode
Default"dedicated"
id*Id
Formatuuid
is_active*Is Active
is_platform_template?Is Platform Template
Defaultfalse
manifest_id?string|null
mcp_servers?array<unknown>
Default[]
model_policy?|null
module_config*|null
name*Name
onboarding_flow_id?|null
rules_template_id?|null
shared_node_capacity?Shared Node Capacity
Default50
sidecars?array<unknown>|null
skills*array<unknown>
source_instance_id?|null
system_prompt*string|null
tenant_id*Tenant Id
Formatuuid
trigger_templates?array<unknown>|
Default[]
updated_at*Updated At
Formatdate-time
voice_config?|null
workflow_slugs*array<unknown>
Example Request
curl -X POST 'https://example.com/v1/recipes' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Example Response
{  "approval_rules": {},  "channel_config": {},  "channel_types": [],  "compliance_config": {},  "connection_requirements": [],  "created_at": "2019-08-24T14:15:22Z",  "data_access": {},  "description": "string",  "hosting_mode": "dedicated",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "is_active": true,  "is_platform_template": false,  "manifest_id": "string",  "mcp_servers": [],  "model_policy": {},  "module_config": {},  "name": "string",  "onboarding_flow_id": "5678512d-5385-4d91-b175-d714095019d8",  "rules_template_id": "2f58bba2-6f2c-4b37-bef9-a3182f3427ec",  "shared_node_capacity": 50,  "sidecars": [    null  ],  "skills": [    null  ],  "source_instance_id": "5f29be29-2815-47a9-b288-7f260493a004",  "system_prompt": "string",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "trigger_templates": [],  "updated_at": "2019-08-24T14:15:22Z",  "voice_config": {},  "workflow_slugs": [    null  ]}

Ai Assist Recipe

POST
/v1/recipes/ai-assist

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
description*Description
Length10 <= length <= 2000

Response Body

Successful Response

application/json
  1. response
channel_types?array<string>
Default[]
connection_requirements?array<string>
Default[]
description?string|null
model_policy?|null
name*Name
skills?array<string>
Default[]
system_prompt?string|null
Example Request
curl -X POST 'https://example.com/v1/recipes/ai-assist' \  -H 'Content-Type: application/json' \  -d '{  "description": "stringstri"}'
Example Response
{  "channel_types": [],  "connection_requirements": [],  "description": "string",  "model_policy": {},  "name": "string",  "skills": [],  "system_prompt": "string"}
POST
/v1/recipes/compose

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
instance_overrides?|null
recipe_id*Recipe Id
Formatuuid

Response Body

Successful Response

application/json
  1. response
resolved_config*
template_name*Template Name
violations?array<string>
Default[]
Example Request
curl -X POST 'https://example.com/v1/recipes/compose' \  -H 'Content-Type: application/json' \  -d '{  "recipe_id": "fa7d15d4-7670-4586-a94b-5079ed028135"}'
Example Response
{  "resolved_config": {},  "template_name": "string",  "violations": []}

Deploy From Recipe

POST
/v1/recipes/deploy

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
customer_id*Customer Id
Formatuuid
hosting_mode?Hosting Mode
Match^(dedicated|shared)$
Default"dedicated"
hostname*Hostname
Lengthlength <= 100
idempotency_key?string|null
instance_overrides?|null
manifest_id?|null
recipe_id*Recipe Id
Formatuuid
region_id*Region Id
Lengthlength <= 50
shared_node_capacity?Shared Node Capacity
Range10 <= value <= 200
Default50
tier_id*Tier Id
Formatuuid

Response Body

Successful Response

application/json
  1. response
idempotency_key?string|null
instance_id?|null
missing_connections?array<string>
Default[]
ready*Ready
task_id?string|null
template_name*Template Name
violations?array<string>
Default[]
Example Request
curl -X POST 'https://example.com/v1/recipes/deploy' \  -H 'Content-Type: application/json' \  -d '{  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",  "hostname": "string",  "recipe_id": "fa7d15d4-7670-4586-a94b-5079ed028135",  "region_id": "string",  "tier_id": "b1cd8bf0-c8eb-4fce-9cae-ebe5317fe7f6"}'
Example Response
{  "idempotency_key": "string",  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "missing_connections": [],  "ready": true,  "task_id": "string",  "template_name": "string",  "violations": []}

Deploy Check

POST
/v1/recipes/deploy-check

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
customer_id*Customer Id
Formatuuid
hostname*Hostname
Lengthlength <= 100
instance_overrides?|null
recipe_id*Recipe Id
Formatuuid

Response Body

Successful Response

application/json
  1. response
missing_connections?array<string>
Default[]
ready*Ready
resolved_config*
template_name*Template Name
violations?array<string>
Default[]
Example Request
curl -X POST 'https://example.com/v1/recipes/deploy-check' \  -H 'Content-Type: application/json' \  -d '{  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",  "hostname": "string",  "recipe_id": "fa7d15d4-7670-4586-a94b-5079ed028135"}'
Example Response
{  "missing_connections": [],  "ready": true,  "resolved_config": {},  "template_name": "string",  "violations": []}

Save Instance As Recipe

POST
/v1/recipes/save-from-instance/{instance_id}

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
description?string|null
name*Name
Lengthlength <= 200

Response Body

Successful Response

application/json
  1. response
approval_rules*|null
channel_config*|null
channel_types?array<unknown>
Default[]
compliance_config?|null
connection_requirements?array<unknown>
Default[]
created_at*Created At
Formatdate-time
data_access?|null
description*string|null
hosting_mode?Hosting Mode
Default"dedicated"
id*Id
Formatuuid
is_active*Is Active
is_platform_template?Is Platform Template
Defaultfalse
manifest_id?string|null
mcp_servers?array<unknown>
Default[]
model_policy?|null
module_config*|null
name*Name
onboarding_flow_id?|null
rules_template_id?|null
shared_node_capacity?Shared Node Capacity
Default50
sidecars?array<unknown>|null
skills*array<unknown>
source_instance_id?|null
system_prompt*string|null
tenant_id*Tenant Id
Formatuuid
trigger_templates?array<unknown>|
Default[]
updated_at*Updated At
Formatdate-time
voice_config?|null
workflow_slugs*array<unknown>
Example Request
curl -X POST 'https://example.com/v1/recipes/save-from-instance/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
Example Response
{  "approval_rules": {},  "channel_config": {},  "channel_types": [],  "compliance_config": {},  "connection_requirements": [],  "created_at": "2019-08-24T14:15:22Z",  "data_access": {},  "description": "string",  "hosting_mode": "dedicated",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "is_active": true,  "is_platform_template": false,  "manifest_id": "string",  "mcp_servers": [],  "model_policy": {},  "module_config": {},  "name": "string",  "onboarding_flow_id": "5678512d-5385-4d91-b175-d714095019d8",  "rules_template_id": "2f58bba2-6f2c-4b37-bef9-a3182f3427ec",  "shared_node_capacity": 50,  "sidecars": [    null  ],  "skills": [    null  ],  "source_instance_id": "5f29be29-2815-47a9-b288-7f260493a004",  "system_prompt": "string",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "trigger_templates": [],  "updated_at": "2019-08-24T14:15:22Z",  "voice_config": {},  "workflow_slugs": [    null  ]}

Get Recipe

GET
/v1/recipes/{template_id}

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

template_id*Template Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response
approval_rules*|null
channel_config*|null
channel_types?array<unknown>
Default[]
compliance_config?|null
connection_requirements?array<unknown>
Default[]
created_at*Created At
Formatdate-time
data_access?|null
description*string|null
hosting_mode?Hosting Mode
Default"dedicated"
id*Id
Formatuuid
is_active*Is Active
is_platform_template?Is Platform Template
Defaultfalse
manifest_id?string|null
mcp_servers?array<unknown>
Default[]
model_policy?|null
module_config*|null
name*Name
onboarding_flow_id?|null
rules_template_id?|null
shared_node_capacity?Shared Node Capacity
Default50
sidecars?array<unknown>|null
skills*array<unknown>
source_instance_id?|null
system_prompt*string|null
tenant_id*Tenant Id
Formatuuid
trigger_templates?array<unknown>|
Default[]
updated_at*Updated At
Formatdate-time
voice_config?|null
workflow_slugs*array<unknown>
Example Request
curl -X GET 'https://example.com/v1/recipes/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "approval_rules": {},  "channel_config": {},  "channel_types": [],  "compliance_config": {},  "connection_requirements": [],  "created_at": "2019-08-24T14:15:22Z",  "data_access": {},  "description": "string",  "hosting_mode": "dedicated",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "is_active": true,  "is_platform_template": false,  "manifest_id": "string",  "mcp_servers": [],  "model_policy": {},  "module_config": {},  "name": "string",  "onboarding_flow_id": "5678512d-5385-4d91-b175-d714095019d8",  "rules_template_id": "2f58bba2-6f2c-4b37-bef9-a3182f3427ec",  "shared_node_capacity": 50,  "sidecars": [    null  ],  "skills": [    null  ],  "source_instance_id": "5f29be29-2815-47a9-b288-7f260493a004",  "system_prompt": "string",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "trigger_templates": [],  "updated_at": "2019-08-24T14:15:22Z",  "voice_config": {},  "workflow_slugs": [    null  ]}

Delete Recipe

DELETE
/v1/recipes/{template_id}

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

template_id*Template Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

Example Request
curl -X DELETE 'https://example.com/v1/recipes/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
Empty

Update Recipe

PUT
/v1/recipes/{template_id}

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

template_id*Template Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
approval_rules?|null
channel_config?|null
channel_types?array<string>|null
compliance_config?|null
connection_requirements?array<string>|null
data_access?|null
description?string|null
hosting_mode?string|null
is_active?boolean|null
manifest_id?string|null
mcp_servers?array<string>|null
model_policy?|null
module_config?|null
name?string|null
onboarding_flow_id?|null
rules_template_id?|null
shared_node_capacity?integer|null
sidecars?array<>|null
skills?array<string>|null
system_prompt?string|null
trigger_templates?array<>|null
voice_config?|null
workflow_slugs?array<string>|null

Response Body

Successful Response

application/json
  1. response
approval_rules*|null
channel_config*|null
channel_types?array<unknown>
Default[]
compliance_config?|null
connection_requirements?array<unknown>
Default[]
created_at*Created At
Formatdate-time
data_access?|null
description*string|null
hosting_mode?Hosting Mode
Default"dedicated"
id*Id
Formatuuid
is_active*Is Active
is_platform_template?Is Platform Template
Defaultfalse
manifest_id?string|null
mcp_servers?array<unknown>
Default[]
model_policy?|null
module_config*|null
name*Name
onboarding_flow_id?|null
rules_template_id?|null
shared_node_capacity?Shared Node Capacity
Default50
sidecars?array<unknown>|null
skills*array<unknown>
source_instance_id?|null
system_prompt*string|null
tenant_id*Tenant Id
Formatuuid
trigger_templates?array<unknown>|
Default[]
updated_at*Updated At
Formatdate-time
voice_config?|null
workflow_slugs*array<unknown>
Example Request
curl -X PUT 'https://example.com/v1/recipes/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "approval_rules": {},  "channel_config": {},  "channel_types": [],  "compliance_config": {},  "connection_requirements": [],  "created_at": "2019-08-24T14:15:22Z",  "data_access": {},  "description": "string",  "hosting_mode": "dedicated",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "is_active": true,  "is_platform_template": false,  "manifest_id": "string",  "mcp_servers": [],  "model_policy": {},  "module_config": {},  "name": "string",  "onboarding_flow_id": "5678512d-5385-4d91-b175-d714095019d8",  "rules_template_id": "2f58bba2-6f2c-4b37-bef9-a3182f3427ec",  "shared_node_capacity": 50,  "sidecars": [    null  ],  "skills": [    null  ],  "source_instance_id": "5f29be29-2815-47a9-b288-7f260493a004",  "system_prompt": "string",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "trigger_templates": [],  "updated_at": "2019-08-24T14:15:22Z",  "voice_config": {},  "workflow_slugs": [    null  ]}