HydraCore
API by router

Websites

GET
/v1/instances/{instance_id}/website

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response

Per-instance website configuration.

content_mode?Content Mode
Default"bundle"
created_at*Created At
Formatdate-time
custom_upload_id?|null
customer_id?|null
deployed_at?|null
deployed_instance_id?|null
faq?array<unknown>
Default[]
features?array<unknown>
Default[]
hero_cta_text?string|null
hero_subtitle?string|null
hero_title?string|null
id*Id
Formatuuid
instance_id?|null
is_primary?Is Primary
Defaulttrue
pricing_currency?Pricing Currency
Default"USD"
pricing_plans?array<unknown>
Default[]
robots_txt_custom?string|null
seo_description?string|null
seo_keywords?string|null
seo_og_image_url?string|null
seo_title?string|null
sitemap_enabled?Sitemap Enabled
Defaulttrue
status?Status
Default"draft"
stripe_connect_account_id?string|null
stripe_publishable_key?string|null
template_id?|null
tenant_id*Tenant Id
Formatuuid
testimonials?array<unknown>
Default[]
trial_days?Trial Days
Default14
updated_at*Updated At
Formatdate-time
Example Request
curl -X GET 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website'
Example Response
{  "content_mode": "bundle",  "created_at": "2019-08-24T14:15:22Z",  "custom_upload_id": "32c143b7-3420-4cb9-8ea3-6d8d9a659ee2",  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",  "deployed_at": "2019-08-24T14:15:22Z",  "deployed_instance_id": "5d02be4a-43b3-42f1-9872-f2bfe2e6f121",  "faq": [],  "features": [],  "hero_cta_text": "string",  "hero_subtitle": "string",  "hero_title": "string",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "is_primary": true,  "pricing_currency": "USD",  "pricing_plans": [],  "robots_txt_custom": "string",  "seo_description": "string",  "seo_keywords": "string",  "seo_og_image_url": "string",  "seo_title": "string",  "sitemap_enabled": true,  "status": "draft",  "stripe_connect_account_id": "string",  "stripe_publishable_key": "string",  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "testimonials": [],  "trial_days": 14,  "updated_at": "2019-08-24T14:15:22Z"}
PUT
/v1/instances/{instance_id}/website

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body

Partial update for website config.

"You can't handle the truth!" — Col. Jessup (about SEO meta descriptions exceeding 160 chars)

content_mode?|null
custom_upload_id?|null
customer_id?|null
faq?array<unknown>|null
features?array<unknown>|null
hero_cta_text?|null
hero_subtitle?|null
hero_title?|null
is_primary?boolean|null
pricing_currency?|null
pricing_plans?array<unknown>|null
robots_txt_custom?string|null
seo_description?|null
seo_keywords?|null
seo_og_image_url?string|null
seo_title?|null
sitemap_enabled?boolean|null
stripe_connect_account_id?|null
stripe_publishable_key?|null
template_id?|null
testimonials?array<unknown>|null
trial_days?|null

Response Body

Successful Response

application/json
  1. response

Per-instance website configuration.

content_mode?Content Mode
Default"bundle"
created_at*Created At
Formatdate-time
custom_upload_id?|null
customer_id?|null
deployed_at?|null
deployed_instance_id?|null
faq?array<unknown>
Default[]
features?array<unknown>
Default[]
hero_cta_text?string|null
hero_subtitle?string|null
hero_title?string|null
id*Id
Formatuuid
instance_id?|null
is_primary?Is Primary
Defaulttrue
pricing_currency?Pricing Currency
Default"USD"
pricing_plans?array<unknown>
Default[]
robots_txt_custom?string|null
seo_description?string|null
seo_keywords?string|null
seo_og_image_url?string|null
seo_title?string|null
sitemap_enabled?Sitemap Enabled
Defaulttrue
status?Status
Default"draft"
stripe_connect_account_id?string|null
stripe_publishable_key?string|null
template_id?|null
tenant_id*Tenant Id
Formatuuid
testimonials?array<unknown>
Default[]
trial_days?Trial Days
Default14
updated_at*Updated At
Formatdate-time
Example Request
curl -X PUT 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "content_mode": "bundle",  "created_at": "2019-08-24T14:15:22Z",  "custom_upload_id": "32c143b7-3420-4cb9-8ea3-6d8d9a659ee2",  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",  "deployed_at": "2019-08-24T14:15:22Z",  "deployed_instance_id": "5d02be4a-43b3-42f1-9872-f2bfe2e6f121",  "faq": [],  "features": [],  "hero_cta_text": "string",  "hero_subtitle": "string",  "hero_title": "string",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "is_primary": true,  "pricing_currency": "USD",  "pricing_plans": [],  "robots_txt_custom": "string",  "seo_description": "string",  "seo_keywords": "string",  "seo_og_image_url": "string",  "seo_title": "string",  "sitemap_enabled": true,  "status": "draft",  "stripe_connect_account_id": "string",  "stripe_publishable_key": "string",  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "testimonials": [],  "trial_days": 14,  "updated_at": "2019-08-24T14:15:22Z"}

Deploy Instance Website

POST
/v1/instances/{instance_id}/website/deploy

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response

Response after initiating website deployment.

instance_id?|null
message*Message
status*Status
website_config_id*Website Config Id
Formatuuid
Example Request
curl -X POST 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website/deploy'
Example Response
{  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "message": "string",  "status": "string",  "website_config_id": "c0aa0662-77a9-4227-8f52-c7a29b8a3ad3"}
GET
/v1/instances/{instance_id}/website/history

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

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/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website/history'
Example Response
[  {    "artifact_hash": "string",    "change_source": "string",    "commit_sha": "string",    "created_at": "2019-08-24T14:15:22Z",    "deployed_at": "2019-08-24T14:15:22Z",    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "notes": "string",    "release_id": "string",    "status": "string"  }]

Preview Instance Website

GET
/v1/instances/{instance_id}/website/preview

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response

Preview payload: config + brand + template merged for client-side rendering.

brand?
Default{}
content?
Default{}
content_mode?Content Mode
Default"bundle"
custom_upload?Custom Upload
Defaultfalse
pricing?
Default{}
seo?
Default{}
template_name?string|null
template_slug?string|null
Example Request
curl -X GET 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website/preview'
Example Response
{  "brand": {},  "content": {},  "content_mode": "bundle",  "custom_upload": false,  "pricing": {},  "seo": {},  "template_name": "string",  "template_slug": "string"}
POST
/v1/instances/{instance_id}/website/rollback

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body
git_ref?|null
release_id?|null

Response Body

Successful Response

application/json
  1. response

Response after initiating website deployment.

instance_id?|null
message*Message
status*Status
website_config_id*Website Config Id
Formatuuid
Example Request
curl -X POST 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website/rollback' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "message": "string",  "status": "string",  "website_config_id": "c0aa0662-77a9-4227-8f52-c7a29b8a3ad3"}
POST
/v1/instances/{instance_id}/website/upload

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Request Body

multipart/form-data
  1. body
file*File
Formatbinary

Response Body

Successful Response

application/json
  1. response

Custom site upload metadata.

content_type*Content Type
created_at*Created At
Formatdate-time
detected_framework?string|null
filename*Filename
has_index_html*Has Index Html
has_package_json*Has Package Json
id*Id
Formatuuid
is_active*Is Active
preview_url?string|null
scan_findings?array<unknown>
Default[]
scan_status?Scan Status
Default"pending"
scan_threat_level?string|null
sha256_hash*Sha256 Hash
size_bytes*Size Bytes
tenant_id*Tenant Id
Formatuuid
validation_errors?array<unknown>
Default[]
validation_status*Validation Status
Example Request
curl -X POST 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website/upload' \  -F 'file=string'
Example Response
{  "content_type": "string",  "created_at": "2019-08-24T14:15:22Z",  "detected_framework": "string",  "filename": "string",  "has_index_html": true,  "has_package_json": true,  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "is_active": true,  "preview_url": "string",  "scan_findings": [],  "scan_status": "pending",  "scan_threat_level": "string",  "sha256_hash": "string",  "size_bytes": 0,  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "validation_errors": [],  "validation_status": "string"}

List Instance Uploads

GET
/v1/instances/{instance_id}/website/uploads

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Path Parameters

instance_id*Instance Id
Formatuuid

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response
[index: integer]?

Custom site upload metadata.

Example Request
curl -X GET 'https://example.com/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/website/uploads'
Example Response
[  {    "content_type": "string",    "created_at": "2019-08-24T14:15:22Z",    "detected_framework": "string",    "filename": "string",    "has_index_html": true,    "has_package_json": true,    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "is_active": true,    "preview_url": "string",    "scan_findings": [],    "scan_status": "pending",    "scan_threat_level": "string",    "sha256_hash": "string",    "size_bytes": 0,    "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",    "validation_errors": [],    "validation_status": "string"  }]

List Website Configs

GET
/v1/website

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Query Parameters

customer_id?|

Filter by customer owner

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response
[index: integer]?

Per-instance website configuration.

Example Request
curl -X GET 'https://example.com/v1/website'
Example Response
[  {    "content_mode": "bundle",    "created_at": "2019-08-24T14:15:22Z",    "custom_upload_id": "32c143b7-3420-4cb9-8ea3-6d8d9a659ee2",    "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",    "deployed_at": "2019-08-24T14:15:22Z",    "deployed_instance_id": "5d02be4a-43b3-42f1-9872-f2bfe2e6f121",    "faq": [],    "features": [],    "hero_cta_text": "string",    "hero_subtitle": "string",    "hero_title": "string",    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",    "is_primary": true,    "pricing_currency": "USD",    "pricing_plans": [],    "robots_txt_custom": "string",    "seo_description": "string",    "seo_keywords": "string",    "seo_og_image_url": "string",    "seo_title": "string",    "sitemap_enabled": true,    "status": "draft",    "stripe_connect_account_id": "string",    "stripe_publishable_key": "string",    "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",    "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",    "testimonials": [],    "trial_days": 14,    "updated_at": "2019-08-24T14:15:22Z"  }]
PUT
/v1/website

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body

Partial update for website config.

"You can't handle the truth!" — Col. Jessup (about SEO meta descriptions exceeding 160 chars)

content_mode?|null
custom_upload_id?|null
customer_id?|null
faq?array<unknown>|null
features?array<unknown>|null
hero_cta_text?|null
hero_subtitle?|null
hero_title?|null
is_primary?boolean|null
pricing_currency?|null
pricing_plans?array<unknown>|null
robots_txt_custom?string|null
seo_description?|null
seo_keywords?|null
seo_og_image_url?string|null
seo_title?|null
sitemap_enabled?boolean|null
stripe_connect_account_id?|null
stripe_publishable_key?|null
template_id?|null
testimonials?array<unknown>|null
trial_days?|null

Response Body

Successful Response

application/json
  1. response

Per-instance website configuration.

content_mode?Content Mode
Default"bundle"
created_at*Created At
Formatdate-time
custom_upload_id?|null
customer_id?|null
deployed_at?|null
deployed_instance_id?|null
faq?array<unknown>
Default[]
features?array<unknown>
Default[]
hero_cta_text?string|null
hero_subtitle?string|null
hero_title?string|null
id*Id
Formatuuid
instance_id?|null
is_primary?Is Primary
Defaulttrue
pricing_currency?Pricing Currency
Default"USD"
pricing_plans?array<unknown>
Default[]
robots_txt_custom?string|null
seo_description?string|null
seo_keywords?string|null
seo_og_image_url?string|null
seo_title?string|null
sitemap_enabled?Sitemap Enabled
Defaulttrue
status?Status
Default"draft"
stripe_connect_account_id?string|null
stripe_publishable_key?string|null
template_id?|null
tenant_id*Tenant Id
Formatuuid
testimonials?array<unknown>
Default[]
trial_days?Trial Days
Default14
updated_at*Updated At
Formatdate-time
Example Request
curl -X PUT 'https://example.com/v1/website' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "content_mode": "bundle",  "created_at": "2019-08-24T14:15:22Z",  "custom_upload_id": "32c143b7-3420-4cb9-8ea3-6d8d9a659ee2",  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",  "deployed_at": "2019-08-24T14:15:22Z",  "deployed_instance_id": "5d02be4a-43b3-42f1-9872-f2bfe2e6f121",  "faq": [],  "features": [],  "hero_cta_text": "string",  "hero_subtitle": "string",  "hero_title": "string",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "is_primary": true,  "pricing_currency": "USD",  "pricing_plans": [],  "robots_txt_custom": "string",  "seo_description": "string",  "seo_keywords": "string",  "seo_og_image_url": "string",  "seo_title": "string",  "sitemap_enabled": true,  "status": "draft",  "stripe_connect_account_id": "string",  "stripe_publishable_key": "string",  "template_id": "c6d67e98-83ea-49f0-8812-e4abae2b68bc",  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "testimonials": [],  "trial_days": 14,  "updated_at": "2019-08-24T14:15:22Z"}

Deploy Website

POST
/v1/website/deploy

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

application/json
  1. body

Request to deploy website to an instance.

instance_id is optional — if provided, deploys the config linked to that instance. If omitted, picks the most recent unlinked draft config. "Get to the chopper!" — Dutch, Predator (about deploying to VPS)

instance_id?|null
preset_id?Preset Id
Default"support_agent"
region_id*Region Id
tier_id*Tier Id

Response Body

Successful Response

application/json
  1. response

Response after initiating website deployment.

instance_id?|null
message*Message
status*Status
website_config_id*Website Config Id
Formatuuid
Example Request
curl -X POST 'https://example.com/v1/website/deploy' \  -H 'Content-Type: application/json' \  -d '{  "region_id": "string",  "tier_id": "string"}'
Example Response
{  "instance_id": "06587974-2dbe-4e10-8bf9-38cce0f5a366",  "message": "string",  "status": "string",  "website_config_id": "c0aa0662-77a9-4227-8f52-c7a29b8a3ad3"}

Preview Website Legacy

GET
/v1/website/preview

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response

Preview payload: config + brand + template merged for client-side rendering.

brand?
Default{}
content?
Default{}
content_mode?Content Mode
Default"bundle"
custom_upload?Custom Upload
Defaultfalse
pricing?
Default{}
seo?
Default{}
template_name?string|null
template_slug?string|null
Example Request
curl -X GET 'https://example.com/v1/website/preview'
Example Response
{  "brand": {},  "content": {},  "content_mode": "bundle",  "custom_upload": false,  "pricing": {},  "seo": {},  "template_name": "string",  "template_slug": "string"}

Upload Custom Site

POST
/v1/website/upload

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Request Body

multipart/form-data
  1. body
file*File
Formatbinary

Response Body

Successful Response

application/json
  1. response

Custom site upload metadata.

content_type*Content Type
created_at*Created At
Formatdate-time
detected_framework?string|null
filename*Filename
has_index_html*Has Index Html
has_package_json*Has Package Json
id*Id
Formatuuid
is_active*Is Active
preview_url?string|null
scan_findings?array<unknown>
Default[]
scan_status?Scan Status
Default"pending"
scan_threat_level?string|null
sha256_hash*Sha256 Hash
size_bytes*Size Bytes
tenant_id*Tenant Id
Formatuuid
validation_errors?array<unknown>
Default[]
validation_status*Validation Status
Example Request
curl -X POST 'https://example.com/v1/website/upload' \  -F 'file=string'
Example Response
{  "content_type": "string",  "created_at": "2019-08-24T14:15:22Z",  "detected_framework": "string",  "filename": "string",  "has_index_html": true,  "has_package_json": true,  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "is_active": true,  "preview_url": "string",  "scan_findings": [],  "scan_status": "pending",  "scan_threat_level": "string",  "sha256_hash": "string",  "size_bytes": 0,  "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",  "validation_errors": [],  "validation_status": "string"}

List Uploads

GET
/v1/website/uploads

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Header Parameters

X-Api-Key?string|null

Response Body

Successful Response

application/json
  1. response
[index: integer]?

Custom site upload metadata.

Example Request
curl -X GET 'https://example.com/v1/website/uploads'
Example Response
[  {    "content_type": "string",    "created_at": "2019-08-24T14:15:22Z",    "detected_framework": "string",    "filename": "string",    "has_index_html": true,    "has_package_json": true,    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "is_active": true,    "preview_url": "string",    "scan_findings": [],    "scan_status": "pending",    "scan_threat_level": "string",    "sha256_hash": "string",    "size_bytes": 0,    "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",    "validation_errors": [],    "validation_status": "string"  }]