Recent searches

in

Sites

On this page

  1. GETGet site details
  2. PUTUpdate site details
  3. DELETEDelete site
  4. GETList activity
  5. GETGet build duration analytics
  6. GETGet bandwidth usage analytics
  7. GETGet bandwidth usage by URL for this site
  8. GETGet bandwidth usage for a specific URL
  9. GETList backups
  10. POSTCreate backup
  11. PUTUpdate site authentication method
  12. GETList site bearer tokens
  13. POSTCreate site bearer token
  14. PUTUpdate client sharing password
  15. PUTUpdate SAML data
  16. PUTUpdate authentication password
  17. GETList site authentication users
  18. POSTCreate site authentication user
  19. PUTUpdate site build configuration
  20. GETList site builds
  21. POSTCreate a new build
  22. DELETECancel the current build
  23. PUTUpdate site client sharing configuration
  24. POSTCopy site
  25. PUTUpdate site dam configuration
  26. GETGet site dams
  27. POSTCreate site dam
  28. PUTUpdate domain name
  29. POSTPrioritise this site as default for the domain
  30. GETGet site editing sessions
  31. POSTCreate a new editing session on a site
  32. GETGet latest open editing session for a site
  33. GETList files from site
  34. GETRedirect to file
  35. GETreturns file metadata
  36. GETRedirect to resized file
  37. GETreturns file sorting
  38. POSTComplete ZIP Upload
  39. GETList form hooks
  40. PUTUpdate site hosting configuration
  41. GETGet site inboxes
  42. POSTCreate site inbox
  43. GETGet the site's main source DAM
  44. PUTSet the site's main source DAM
  45. GETList site members
  46. POSTMove a site member to a different site group
  47. DELETERemove a site member or cancel a pending invitation
  48. POSTAdd output storage provider
  49. PUTUpdate output storage provider
  50. DELETERemove output storage provider
  51. POSTSync to output storage provider
  52. GETList site outputs
  53. GETList pending site members
  54. POSTAdd storage provider
  55. PUTUpdate storage provider
  56. DELETERemove storage provider
  57. GETList branches
  58. POSTClone a branch from the selected site branch
  59. POSTMerge changes
  60. POSTSet the branch for changes to be published to
  61. GETCompare the changes to the publish branch
  62. GETCompare the changes from the publish branch
  63. POSTMerge upstream changes
  64. GETList pull requests
  65. POSTCreate pull request
  66. GETGet pull request details
  67. DELETEClose pull request
  68. GETGet pull request commits
  69. PUTMerge pull request
  70. POSTClears the current storage providers error
  71. POSTSync from storage provider
  72. GETList Upstream pull requests
  73. POSTCreate update pull request
  74. PUTUpdate site publish method
  75. GETGet site scan details
  76. GETList site scheduled builds
  77. POSTCreate site scheduled build
  78. GETReturns a presigned s3 URL to load screenshot hashes for a site
  79. GETRedirect to screenshot
  80. GETRedirect to lighthouse json response
  81. GETGet site mountings
  82. POSTCreate site mounting
  83. PUTUpdate site SSL Custom
  84. DELETERemove site SSL Custom
  85. GETGet state for SSL Auto
  86. POSTRetry to Generate SSL Auto
  87. GETGet Cloudflare state for SSL
  88. POSTRetry Cloudflare SSL Setup
  89. PUTUpdate Cloudflare SSL Setup
  90. GETList site syncs
  91. POSTStart watching a site path
  92. DELETEStop watching a site path

Get site details

GET/api/v0/sites/{site_uuid}
Path parameters:
site_uuidUUID | integerRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid} \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Update site details

PUT/api/v0/sites/{site_uuid}
Path parameters:
site_uuidUUID | integerRequired#
Request body:
site_namestringRequired#
editing_lockedbooleanNullable#
active_queststringNullable#
cloudcannon_config_pathstringNullable#
flagsobject#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid} \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "site_name": "string",
    "editing_locked": true,
    "active_quest": "string",
    "cloudcannon_config_path": "string",
    "flags": {}
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Delete site

DELETE/api/v0/sites/{site_uuid}
Path parameters:
site_uuidUUID | integerRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid} \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
204Deleted
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List activity

GET/api/v0/sites/{site_uuid}/activity
Path parameters:
site_uuidUUIDRequired#
Filters:
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
idinteger#
org_idinteger#
org_uuidstring#
organisation_uuidstring#
site_idinteger#
site_uuidstring#
size_gtstring | integer | boolean | string (date-time)#
size_gtestring | integer | boolean | string (date-time)#
size_ltstring | integer | boolean | string (date-time)#
size_ltestring | integer | boolean | string (date-time)#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "happened_at"

Allowed values: id uuid updated_at happened_at created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/activity \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "string",
    "id": 0,
    "data": "string",
    "identifier": "string",
    "identifier_data": "string",
    "happened_at": "2024-01-01T00:00:00Z",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "user": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "first_name": "string",
      "surname": "string",
      "email": "string",
      "otp_required_for_login": true
    },
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Get build duration analytics

GET/api/v0/sites/{site_uuid}/analytics/build/duration
Path parameters:
site_uuidUUIDRequired#
Query parameters:
start_timestringRequired#
end_timestringRequired#
periodstringRequired#

Allowed values: hourly daily weekly

timezonestringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/analytics/build/duration \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "date": "2024-01-01T00:00:00Z",
    "duration": 0
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get bandwidth usage analytics

GET/api/v0/sites/{site_uuid}/analytics/hosting/bandwidth
Path parameters:
site_uuidUUIDRequired#
Query parameters:
start_timestring#
end_timestring#
periodstring#

Allowed values: hourly daily weekly

timezonestring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/analytics/hosting/bandwidth \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "date": "2024-01-01T00:00:00Z",
    "bandwidth": 0
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get bandwidth usage by URL for this site

GET/api/v0/sites/{site_uuid}/analytics/hosting/bandwidth-by-url
Path parameters:
site_uuidUUIDRequired#
Query parameters:
start_timestringRequired#
end_timestringRequired#
periodstringRequired#

Allowed values: hourly daily weekly

timezonestringRequired#
offsetinteger#

Defaults to: 0

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/analytics/hosting/bandwidth-by-url \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "url": "string",
    "host": "string",
    "total_bandwidth": 0,
    "total_requests": 0
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get bandwidth usage for a specific URL

GET/api/v0/sites/{site_uuid}/analytics/hosting/bandwidth-for-url
Path parameters:
site_uuidUUIDRequired#
Query parameters:
urlstringRequired#
start_timestringRequired#
end_timestringRequired#
periodstringRequired#

Allowed values: hourly daily weekly

timezonestringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/analytics/hosting/bandwidth-for-url \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "total_bandwidth": 0,
  "total_requests": 0
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List backups

GET/api/v0/sites/{site_uuid}/archives
Path parameters:
site_uuidUUIDRequired#
Filters:
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
idinteger#
org_idinteger#
org_uuidstring#
site_idinteger#
site_uuidstring#
size_gtinteger#
size_gteinteger#
size_ltinteger#
size_lteinteger#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
searchstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: id uuid created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/archives \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "path": "string",
    "size": 0,
    "exclude_git": true,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create backup

POST/api/v0/sites/{site_uuid}/archives
Path parameters:
site_uuidUUIDRequired#
Request body:
exclude_gitboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/archives \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "exclude_git": true
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "socket_message_id": "string"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update site authentication method

PUT/api/v0/sites/{site_uuid}/authentication
Path parameters:
site_uuidUUID | integerRequired#
Request body:
authenticationstringNullable#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "authentication": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List site bearer tokens

GET/api/v0/sites/{site_uuid}/authentication/bearer-tokens
Path parameters:
site_uuidUUIDRequired#
Filters:
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
idinteger#
namestring#
org_idinteger#
org_uuidstring#
site_idinteger#
site_uuidstring#
tokenstring#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "id"

Allowed values: id uuid

sort_directionstring#

Direction to sort the results

Defaults to: "ASC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/bearer-tokens \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "name": "string",
    "obscured_token": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create site bearer token

POST/api/v0/sites/{site_uuid}/authentication/bearer-tokens
Path parameters:
site_uuidUUIDRequired#
Request body:
namestring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/bearer-tokens \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string"
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "token": "string"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update client sharing password

PUT/api/v0/sites/{site_uuid}/authentication/client-password
Path parameters:
site_uuidUUIDRequired#
Request body:
passwordstring#
accept_billing_increaseboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/client-password \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "string",
    "accept_billing_increase": true
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update SAML data

PUT/api/v0/sites/{site_uuid}/authentication/saml
Path parameters:
site_uuidUUIDRequired#
Request body:
saml_datastring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/saml \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "saml_data": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update authentication password

PUT/api/v0/sites/{site_uuid}/authentication/stable-password
Path parameters:
site_uuidUUIDRequired#
Request body:
stable_passwordstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/stable-password \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "stable_password": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List site authentication users

GET/api/v0/sites/{site_uuid}/authentication/users
Path parameters:
site_uuidUUIDRequired#
Filters:
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
emailstring#
idinteger#
org_idinteger#
org_uuidstring#
site_idinteger#
site_uuidstring#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "id"

Allowed values: id uuid

sort_directionstring#

Direction to sort the results

Defaults to: "ASC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/users \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "email": "string",
    "has_password": true,
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create site authentication user

POST/api/v0/sites/{site_uuid}/authentication/users
Path parameters:
site_uuidUUIDRequired#
Request body:
emailstringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/authentication/users \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "string"
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "email": "string",
  "has_password": true,
  "site_uuid": "00000000-0000-0000-0000-000000000000"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update site build configuration

PUT/api/v0/sites/{site_uuid}/build
Path parameters:
site_uuidUUID | integerRequired#
Request body:
default_localestringNullable#
uses_i18nboolean#
building_lockedbooleanNullable#
ssgstringNullable#
build_configurationstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/build \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "default_locale": "string",
    "uses_i18n": true,
    "building_locked": true,
    "ssg": "string",
    "build_configuration": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List site builds

GET/api/v0/sites/{site_uuid}/builds
Path parameters:
site_uuidUUIDRequired#
Filters:
completed_atstring#
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
idinteger#
namestring#
org_idinteger#
org_uuidstring#
pinnableboolean#
site_idinteger#
site_uuidstring#
successfulboolean#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
searchstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: id uuid created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/builds \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "name": "string",
    "successful": true,
    "site_id": 0,
    "completed_at": "2024-01-01T00:00:00Z",
    "metadata": {},
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "pinnable": true,
    "parent_build_uuid": "00000000-0000-0000-0000-000000000000",
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create a new build

POST/api/v0/sites/{site_uuid}/builds
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/builds \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
204No Content
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Cancel the current build

DELETE/api/v0/sites/{site_uuid}/builds
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/builds \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
204canceled
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Update site client sharing configuration

PUT/api/v0/sites/{site_uuid}/client-sharing
Path parameters:
site_uuidUUID | integerRequired#
Request body:
client_editor_routestring#
prevent_client_password_saveboolean#
client_author_namestringNullable#
client_author_emailstringNullable#
preview_urlstringNullable#
documentation_urlstringNullable#
support_urlstringNullable#
flagsobject#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/client-sharing \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "client_editor_route": "string",
    "prevent_client_password_save": true,
    "client_author_name": "string",
    "client_author_email": "string",
    "preview_url": "string",
    "documentation_url": "string",
    "support_url": "string",
    "flags": {}
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Copy site

POST/api/v0/sites/{site_uuid}/copy
Path parameters:
site_uuidUUID | integerRequired#
Request body:
site_namestringRequired#
editing_lockedbooleanNullable#
active_queststringNullable#
cloudcannon_config_pathstringNullable#
stable_domainstring#
flagsobject#
publish_modestringNullable#
destroy_on_publishboolean#
branchstring#
publish_branchboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/copy \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "site_name": "string",
    "editing_locked": true,
    "active_quest": "string",
    "cloudcannon_config_path": "string",
    "stable_domain": "string",
    "flags": {},
    "publish_mode": "string",
    "destroy_on_publish": true,
    "branch": "string",
    "publish_branch": true
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
402FeatureNotOnPlan
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update site dam configuration

PUT/api/v0/sites/{site_uuid}/dam
Path parameters:
site_uuidUUID | integerRequired#
Request body:
uploads_lockedboolean#
browsing_lockedboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/dam \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "uploads_locked": true,
    "browsing_locked": true
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get site dams

GET/api/v0/sites/{site_uuid}/dams
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/dams \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "string",
    "id": 0,
    "site_id": 0,
    "dam_uuid": "string",
    "config": {},
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "uploads_locked": true,
    "reference_key": "string",
    "site_uuid": "00000000-0000-0000-0000-000000000000",
    "dam": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "access_key": "string",
      "base_url": "string",
      "created_at": "2024-01-01T00:00:00Z",
      "dam_type": "string",
      "name": "string",
      "updated_at": "2024-01-01T00:00:00Z",
      "max_upload_size": 0,
      "organisation_uuid": "00000000-0000-0000-0000-000000000000",
      "config": {},
      "extra_params": "string"
    }
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create site dam

POST/api/v0/sites/{site_uuid}/dams
Path parameters:
site_uuidUUIDRequired#
Request body:
dam_uuidstringRequired#
uploads_lockedboolean#
configobjectNullable#
reference_keystringNullable#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/dams \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "dam_uuid": "string",
    "uploads_locked": true,
    "config": {},
    "reference_key": "string"
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "uuid": "string",
  "id": 0,
  "site_id": 0,
  "dam_uuid": "string",
  "config": {},
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "uploads_locked": true,
  "reference_key": "string",
  "site_uuid": "00000000-0000-0000-0000-000000000000",
  "dam": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "access_key": "string",
    "base_url": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "dam_type": "string",
    "name": "string",
    "updated_at": "2024-01-01T00:00:00Z",
    "max_upload_size": 0,
    "organisation_uuid": "00000000-0000-0000-0000-000000000000",
    "config": {},
    "extra_params": "string"
  }
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update domain name

PUT/api/v0/sites/{site_uuid}/domain
Path parameters:
site_uuidUUIDRequired#
Request body:
domain_namestringNullable#
subpathstringNullable#
accept_billing_increaseboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/domain \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "domain_name": "string",
    "subpath": "string",
    "accept_billing_increase": true
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
402PaymentConfirmRequired
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Prioritise this site as default for the domain

POST/api/v0/sites/{site_uuid}/domain/prioritise
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/domain/prioritise \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get site editing sessions

GET/api/v0/sites/{site_uuid}/editing_sessions
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/editing_sessions \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "site_id": 0,
    "build_id": 0,
    "state": "string",
    "base_commit_hash": "string",
    "upstream_commit_hash": "string",
    "syncs_blocked": 0,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "site_uuid": "00000000-0000-0000-0000-000000000000",
    "build_uuid": "00000000-0000-0000-0000-000000000000",
    "files": [
      {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "editing_session_uuid": "string",
        "edit_type": "string",
        "source_path": "string",
        "path": "string",
        "sync_blocked": true,
        "has_conflict": true,
        "unchanged": true,
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "metadata": {},
        "contributions": []
      }
    ]
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create a new editing session on a site

POST/api/v0/sites/{site_uuid}/editing_sessions
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/editing_sessions \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "site_id": 0,
  "build_id": 0,
  "state": "string",
  "base_commit_hash": "string",
  "upstream_commit_hash": "string",
  "syncs_blocked": 0,
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "site_uuid": "00000000-0000-0000-0000-000000000000",
  "build_uuid": "00000000-0000-0000-0000-000000000000",
  "files": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "editing_session_uuid": "string",
      "edit_type": "string",
      "source_path": "string",
      "path": "string",
      "sync_blocked": true,
      "has_conflict": true,
      "unchanged": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "metadata": {},
      "contributions": [
        {}
      ]
    }
  ]
}
201Created
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "site_id": 0,
  "build_id": 0,
  "state": "string",
  "base_commit_hash": "string",
  "upstream_commit_hash": "string",
  "syncs_blocked": 0,
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "site_uuid": "00000000-0000-0000-0000-000000000000",
  "build_uuid": "00000000-0000-0000-0000-000000000000",
  "files": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "editing_session_uuid": "string",
      "edit_type": "string",
      "source_path": "string",
      "path": "string",
      "sync_blocked": true,
      "has_conflict": true,
      "unchanged": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "metadata": {},
      "contributions": [
        {}
      ]
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get latest open editing session for a site

GET/api/v0/sites/{site_uuid}/editing_sessions/latest
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/editing_sessions/latest \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "site_id": 0,
  "build_id": 0,
  "state": "string",
  "base_commit_hash": "string",
  "upstream_commit_hash": "string",
  "syncs_blocked": 0,
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "site_uuid": "00000000-0000-0000-0000-000000000000",
  "build_uuid": "00000000-0000-0000-0000-000000000000",
  "files": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "editing_session_uuid": "string",
      "edit_type": "string",
      "source_path": "string",
      "path": "string",
      "sync_blocked": true,
      "has_conflict": true,
      "unchanged": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "metadata": {},
      "contributions": [
        {}
      ]
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

List files from site

GET/api/v0/sites/{site_uuid}/files
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/files \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "md5": "string",
    "s3Path": "string",
    "sitePath": "string"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Redirect to file

GET/api/v0/sites/{site_uuid}/files/{path}
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#
Query parameters:
downloadboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/files/{path} \
  -H "X-API-KEY: <your-api-key>"
Responses:
307Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
404Not Found
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

returns file metadata

GET/api/v0/sites/{site_uuid}/files/{path}/metadata
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/files/{path}/metadata \
  -H "X-API-KEY: <your-api-key>"
Responses:
303Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Redirect to resized file

GET/api/v0/sites/{site_uuid}/files/{path}/resized
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#
Query parameters:
widthinteger#
heightinteger#
content_typestring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/files/{path}/resized \
  -H "X-API-KEY: <your-api-key>"
Responses:
307Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

returns file sorting

GET/api/v0/sites/{site_uuid}/files/{path}/sorting
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/files/{path}/sorting \
  -H "X-API-KEY: <your-api-key>"
Responses:
303Redirect
307Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Complete ZIP Upload

POST/api/v0/sites/{site_uuid}/files/zip
Path parameters:
site_uuidUUIDRequired#
Request body:
zipobject#
keystring#
checksumstring#
typestring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/files/zip \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "zip": {
      "key": "string",
      "checksum": "string",
      "type": "string"
    }
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "socket_message_id": "string"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List form hooks

GET/api/v0/sites/{site_uuid}/form-hooks
Path parameters:
site_uuidUUIDRequired#
Filters:
categorystring#

Allowed values: spam sent errored pending

automatically_marked_spamboolean#
cleared_at_gtstring#
cleared_at_gtestring#
cleared_at_ltstring#
cleared_at_ltestring#
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
explicitly_marked_statusinteger#
has_errorstring | integer | boolean | string (date-time)#
has_spam_check_errorstring | integer | boolean | string (date-time)#
hoststring#
idinteger#
inbox_uuidstring#
ipstring#
last_sent_at_gtstring#
last_sent_at_gtestring#
last_sent_at_ltstring#
last_sent_at_ltestring#
org_idinteger#
org_uuidstring#
recaptchaboolean#
sentboolean#
sent_count_gtinteger#
sent_count_gteinteger#
sent_count_ltinteger#
sent_count_lteinteger#
site_idinteger#
site_uuidstring#
spam_checkedboolean#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
searchstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: last_sent_at created_at id uuid

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/form-hooks \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "sent": true,
    "recaptcha": true,
    "ip": "string",
    "host": "string",
    "data": {},
    "timings": {},
    "error": "string",
    "explicitly_marked_status": "no_mark",
    "automatically_marked_spam": true,
    "last_sent_at": "2024-01-01T00:00:00Z",
    "cleared_at": "2024-01-01T00:00:00Z",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "inbox_uuid": "string",
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Update site hosting configuration

PUT/api/v0/sites/{site_uuid}/hosting
Path parameters:
site_uuidUUID | integerRequired#
Request body:
hosting_choicestring#
geolocationbooleanNullable#
force_sslbooleanNullable#
auto_generate_sslboolean#
serve_extensionlessboolean#
force_extensionlessboolean#
ssl_certificate_idintegerNullable#
modestringNullable#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/hosting \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "hosting_choice": "string",
    "geolocation": true,
    "force_ssl": true,
    "auto_generate_ssl": true,
    "serve_extensionless": true,
    "force_extensionless": true,
    "ssl_certificate_id": 0,
    "mode": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get site inboxes

GET/api/v0/sites/{site_uuid}/inboxes
Path parameters:
site_uuidUUIDRequired#
Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/inboxes \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "default_inbox": true,
    "site_id": 0,
    "inbox_uuid": "string",
    "visible": true,
    "require_captcha": true,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "site_uuid": "00000000-0000-0000-0000-000000000000",
    "inbox": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "name": "string",
      "key": "string",
      "monthly_quota": 0,
      "keep_form_hook_days": 0,
      "organisation_id": 0,
      "captcha_type": "string",
      "captcha_key": "string",
      "captcha_secret": "string",
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "organisation_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox_targets": [
        {}
      ]
    }
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create site inbox

POST/api/v0/sites/{site_uuid}/inboxes
Path parameters:
site_uuidUUIDRequired#
Request body:
inbox_uuidstring#
default_inboxboolean#
visibleboolean#
require_captchaboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/inboxes \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "inbox_uuid": "string",
    "default_inbox": true,
    "visible": true,
    "require_captcha": true
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "default_inbox": true,
  "site_id": 0,
  "inbox_uuid": "string",
  "visible": true,
  "require_captcha": true,
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "site_uuid": "00000000-0000-0000-0000-000000000000",
  "inbox": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "name": "string",
    "key": "string",
    "monthly_quota": 0,
    "keep_form_hook_days": 0,
    "organisation_id": 0,
    "captcha_type": "string",
    "captcha_key": "string",
    "captcha_secret": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "organisation_uuid": "00000000-0000-0000-0000-000000000000",
    "inbox_targets": [
      {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "target_type": "string",
        "target": "string",
        "validated": true,
        "config": {},
        "inbox_uuid": "00000000-0000-0000-0000-000000000000",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z"
      }
    ]
  }
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get the site's main source DAM

GET/api/v0/sites/{site_uuid}/main_source_dam
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/main_source_dam \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Set the site's main source DAM

PUT/api/v0/sites/{site_uuid}/main_source_dam
Path parameters:
site_uuidUUIDRequired#
Request body:
uuidUUID#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/main_source_dam \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "00000000-0000-0000-0000-000000000000"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List site members

GET/api/v0/sites/{site_uuid}/members
Path parameters:
site_uuidUUIDRequired#
Filters:
searchstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: id uuid email first_name last_sign_in_at created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/members \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "first_name": "string",
    "surname": "string",
    "email": "string",
    "otp_required_for_login": true
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Move a site member to a different site group

POST/api/v0/sites/{site_uuid}/members/{email}
Path parameters:
site_uuidUUIDRequired#
emailstringRequired#
Request body:
group_uuidUUID#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/members/{email} \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "group_uuid": "00000000-0000-0000-0000-000000000000"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "group_id": 0,
  "user_id": 0,
  "group_uuid": "string",
  "user_uuid": "string",
  "user": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "first_name": "string",
    "surname": "string",
    "email": "string",
    "otp_required_for_login": true
  }
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Remove a site member or cancel a pending invitation

DELETE/api/v0/sites/{site_uuid}/members/{email}
Path parameters:
site_uuidUUIDRequired#
emailstringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/members/{email} \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
204Deleted
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Add output storage provider

POST/api/v0/sites/{site_uuid}/output-providers
Path parameters:
site_uuidUUIDRequired#
Request body:
storage_providerenum#

Allowed values: github github_enterprise_server bitbucket gitlab self_hosted_gitlab ftp

custom_dataobject#
full_namestring#
branchstring#
hostnamestring#
portinteger#
usernamestring#
passwordstring#
pathstring#
ignorePermissionsboolean#
stepstring#
webhook_idstring#
exclusionsArray<string>#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/output-providers \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "storage_provider": "github",
    "custom_data": {
      "full_name": "string",
      "branch": "string",
      "hostname": "string",
      "port": 0,
      "username": "string",
      "password": "string",
      "path": "string",
      "ignorePermissions": true,
      "step": "string",
      "webhook_id": "string",
      "exclusions": [
        "string"
      ]
    }
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update output storage provider

PUT/api/v0/sites/{site_uuid}/output-providers
Path parameters:
site_uuidUUIDRequired#
Request body:
custom_dataobject#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/output-providers \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "custom_data": {}
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Remove output storage provider

DELETE/api/v0/sites/{site_uuid}/output-providers
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/output-providers \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Sync to output storage provider

POST/api/v0/sites/{site_uuid}/output-providers/sync
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/output-providers/sync \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "socket_message_id": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List site outputs

GET/api/v0/sites/{site_uuid}/outputs
Path parameters:
site_uuidUUIDRequired#
Filters:
after_identifierstring#
completed_at_gtstring#
completed_at_gtestring#
completed_at_ltstring#
completed_at_ltestring#
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
diff_idstring#
idinteger#
identifierstring#
namestring#
org_idinteger#
org_uuidstring#
providerstring#
site_idinteger#
site_uuidstring#
successfulboolean#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: id uuid created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/outputs \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "name": "string",
    "successful": true,
    "identifier": "string",
    "after_identifier": "string",
    "diff_id": "string",
    "completed_at": "2024-01-01T00:00:00Z",
    "provider": "string",
    "provider_data": {},
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

List pending site members

GET/api/v0/sites/{site_uuid}/pending-members
Path parameters:
site_uuidUUIDRequired#
Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/pending-members \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "email": "string",
    "organisation_uuid": "string",
    "group": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "creation_type": "string",
      "organisation_id": 0,
      "name": "string",
      "organisation_uuid": "string"
    }
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Add storage provider

POST/api/v0/sites/{site_uuid}/providers
Path parameters:
site_uuidUUIDRequired#
Request body:
storage_providerenum#

Allowed values: github github_enterprise_server bitbucket gitlab self_hosted_gitlab

custom_dataobject#
branchstring#
full_namestring#
webhook_idstring#
lfsEnabledboolean#
fast_compile_disabledboolean#
publish_branchstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "storage_provider": "github",
    "custom_data": {
      "branch": "string",
      "full_name": "string",
      "webhook_id": "string",
      "lfsEnabled": true,
      "fast_compile_disabled": true,
      "publish_branch": "string"
    }
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update storage provider

PUT/api/v0/sites/{site_uuid}/providers
Path parameters:
site_uuidUUIDRequired#
Request body:
custom_dataobject#
full_namestring#
branchstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "custom_data": {
      "full_name": "string",
      "branch": "string"
    }
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Remove storage provider

DELETE/api/v0/sites/{site_uuid}/providers
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List branches

GET/api/v0/sites/{site_uuid}/providers/branches
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "name": "string",
    "sha": "string",
    "updated_at": "2024-01-01T00:00:00Z"
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Clone a branch from the selected site branch

POST/api/v0/sites/{site_uuid}/providers/branches
Path parameters:
site_uuidUUIDRequired#
Request body:
namestring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "name": "string",
  "sha": "string",
  "updated_at": "2024-01-01T00:00:00Z"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Merge changes

POST/api/v0/sites/{site_uuid}/providers/branches/merge
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches/merge \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
204Deleted. Used when site is deleted after a successful merge.
402FeatureNotOnPlan
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Set the branch for changes to be published to

POST/api/v0/sites/{site_uuid}/providers/branches/publish
Path parameters:
site_uuidUUIDRequired#
Request body:
branchstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches/publish \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "branch": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Compare the changes to the publish branch

GET/api/v0/sites/{site_uuid}/providers/branches/publish/compare
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches/publish/compare \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "status": "string",
  "ahead_by": 0,
  "behind_by": 0,
  "total_commits": 0,
  "commits": [
    {
      "sha": "string",
      "html_url": "string",
      "commit": {
        "message": "string",
        "author": {},
        "committer": {}
      }
    }
  ],
  "files": [
    {
      "sha": "string",
      "filename": "string",
      "status": "string",
      "additions": 0,
      "deletions": 0,
      "changes": 0
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Compare the changes from the publish branch

GET/api/v0/sites/{site_uuid}/providers/branches/publish/upstream-compare
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches/publish/upstream-compare \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "status": "string",
  "ahead_by": 0,
  "behind_by": 0,
  "total_commits": 0,
  "commits": [
    {
      "sha": "string",
      "html_url": "string",
      "commit": {
        "message": "string",
        "author": {},
        "committer": {}
      }
    }
  ],
  "files": [
    {
      "sha": "string",
      "filename": "string",
      "status": "string",
      "additions": 0,
      "deletions": 0,
      "changes": 0
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Merge upstream changes

POST/api/v0/sites/{site_uuid}/providers/branches/upstream-merge
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/branches/upstream-merge \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List pull requests

GET/api/v0/sites/{site_uuid}/providers/pull-requests
Path parameters:
site_uuidUUIDRequired#
Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/pull-requests \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "number": 0,
    "state": "string",
    "title": "string",
    "body": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "closed_at": "2024-01-01T00:00:00Z",
    "merged_at": "2024-01-01T00:00:00Z",
    "locked": true,
    "draft": true,
    "head": {
      "ref": "string",
      "sha": "string",
      "repo": {
        "name": "string",
        "full_name": "string"
      }
    },
    "base": {
      "ref": "string",
      "sha": "string",
      "repo": {
        "name": "string",
        "full_name": "string"
      }
    },
    "is_external_contributor": true
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Create pull request

POST/api/v0/sites/{site_uuid}/providers/pull-requests
Path parameters:
site_uuidUUIDRequired#
Request body:
titlestring#
bodystring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/pull-requests \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "string",
    "body": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "number": 0,
  "state": "string",
  "title": "string",
  "body": "string",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "closed_at": "2024-01-01T00:00:00Z",
  "merged_at": "2024-01-01T00:00:00Z",
  "locked": true,
  "draft": true,
  "head": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "base": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "is_external_contributor": true
}
402FeatureNotOnPlan
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get pull request details

GET/api/v0/sites/{site_uuid}/providers/pull-requests/{number}
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/pull-requests/{number} \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "number": 0,
  "state": "string",
  "title": "string",
  "body": "string",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "closed_at": "2024-01-01T00:00:00Z",
  "merged_at": "2024-01-01T00:00:00Z",
  "locked": true,
  "draft": true,
  "head": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "base": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "is_external_contributor": true
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Close pull request

DELETE/api/v0/sites/{site_uuid}/providers/pull-requests/{number}
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/pull-requests/{number} \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "number": 0,
  "state": "string",
  "title": "string",
  "body": "string",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "closed_at": "2024-01-01T00:00:00Z",
  "merged_at": "2024-01-01T00:00:00Z",
  "locked": true,
  "draft": true,
  "head": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "base": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "is_external_contributor": true
}
402FeatureNotOnPlan
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get pull request commits

GET/api/v0/sites/{site_uuid}/providers/pull-requests/{number}/commits
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/pull-requests/{number}/commits \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "sha": "string",
    "html_url": "string",
    "commit": {
      "message": "string",
      "author": {
        "name": "string",
        "email": "string",
        "date": "2024-01-01T00:00:00Z"
      },
      "committer": {
        "name": "string",
        "email": "string",
        "date": "2024-01-01T00:00:00Z"
      }
    }
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Merge pull request

PUT/api/v0/sites/{site_uuid}/providers/pull-requests/{number}/merge
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#
Request body:
commit_messagestring#
typestring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/pull-requests/{number}/merge \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "commit_message": "string",
    "type": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "socket_message_id": "string"
}
204Merged
402FeatureNotOnPlan
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Clears the current storage providers error

POST/api/v0/sites/{site_uuid}/providers/reconnect
Path parameters:
site_uuidUUIDRequired#
Request body:
forcedboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/reconnect \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "forced": true
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Sync from storage provider

POST/api/v0/sites/{site_uuid}/providers/sync
Path parameters:
site_uuidUUIDRequired#
Request body:
typeenum#

Allowed values: push pull

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/sync \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "push"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "socket_message_id": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List Upstream pull requests

GET/api/v0/sites/{site_uuid}/providers/upstream-pull-requests
Path parameters:
site_uuidUUIDRequired#
Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/upstream-pull-requests \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "number": 0,
    "state": "string",
    "title": "string",
    "body": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "closed_at": "2024-01-01T00:00:00Z",
    "merged_at": "2024-01-01T00:00:00Z",
    "locked": true,
    "draft": true,
    "head": {
      "ref": "string",
      "sha": "string",
      "repo": {
        "name": "string",
        "full_name": "string"
      }
    },
    "base": {
      "ref": "string",
      "sha": "string",
      "repo": {
        "name": "string",
        "full_name": "string"
      }
    },
    "is_external_contributor": true
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Create update pull request

POST/api/v0/sites/{site_uuid}/providers/upstream-pull-requests
Path parameters:
site_uuidUUIDRequired#
Request body:
titlestring#
bodystring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/providers/upstream-pull-requests \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "string",
    "body": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "number": 0,
  "state": "string",
  "title": "string",
  "body": "string",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "closed_at": "2024-01-01T00:00:00Z",
  "merged_at": "2024-01-01T00:00:00Z",
  "locked": true,
  "draft": true,
  "head": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "base": {
    "ref": "string",
    "sha": "string",
    "repo": {
      "name": "string",
      "full_name": "string"
    }
  },
  "is_external_contributor": true
}
402FeatureNotOnPlan
JSON
Copied to clipboard
{
  "errors": {}
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update site publish method

PUT/api/v0/sites/{site_uuid}/publish
Path parameters:
site_uuidUUID | integerRequired#
Request body:
publish_modestringNullable#
destroy_on_publishboolean#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/publish \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "publish_mode": "string",
    "destroy_on_publish": true
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get site scan details

GET/api/v0/sites/{site_uuid}/scans
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/scans \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "files": 0,
  "html_files": 0,
  "css_files": 0,
  "image_files": 0,
  "js_files": 0,
  "other_files": 0,
  "editable_class": 0,
  "repeatable_class": 0,
  "blog_posts": 0,
  "draft_posts": 0,
  "data_files": 0,
  "layouts": 0,
  "includes": 0,
  "old_includes": 0,
  "cc_contact_form": 0,
  "scanner_run_at": "2024-01-01T00:00:00Z",
  "config_yml_file": true,
  "total_size": 0,
  "collections": 0,
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "ruby_version": "string",
  "array_editables": 0,
  "component_editables": 0,
  "source_editables": 0,
  "text_editables": 0,
  "image_editables": 0,
  "missing_links": 0,
  "site_uuid": "00000000-0000-0000-0000-000000000000"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

List site scheduled builds

GET/api/v0/sites/{site_uuid}/scheduled-builds
Path parameters:
site_uuidUUIDRequired#
Filters:
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
filenamestring#
from_sourceboolean#
idinteger#
namestring#
org_idinteger#
org_uuidstring#
period_gtinteger#
period_gteinteger#
period_ltinteger#
period_lteinteger#
run_count_gtinteger#
run_count_gteinteger#
run_count_ltinteger#
run_count_lteinteger#
run_date_gtstring#
run_date_gtestring#
run_date_ltstring#
run_date_ltestring#
scheduled_atstring#
site_idinteger#
site_uuidstring#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: id uuid created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/scheduled-builds \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "name": "string",
    "filename": "string",
    "run_date": "2024-01-01T00:00:00Z",
    "period": 0,
    "from_source": true,
    "scheduled_at": "2024-01-01T00:00:00Z",
    "run_count": 0,
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create site scheduled build

POST/api/v0/sites/{site_uuid}/scheduled-builds
Path parameters:
site_uuidUUIDRequired#
Request body:
namestringRequired#
periodintegerNullable#
run_datestring (date-time)Required#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/scheduled-builds \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "period": 0,
    "run_date": "2024-01-01T00:00:00Z"
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "id": 0,
  "name": "string",
  "filename": "string",
  "run_date": "2024-01-01T00:00:00Z",
  "period": 0,
  "from_source": true,
  "scheduled_at": "2024-01-01T00:00:00Z",
  "run_count": 0,
  "site_uuid": "00000000-0000-0000-0000-000000000000"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Returns a presigned s3 URL to load screenshot hashes for a site

GET/api/v0/sites/{site_uuid}/screenshots
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/screenshots \
  -H "X-API-KEY: <your-api-key>"
Responses:
303Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Redirect to screenshot

GET/api/v0/sites/{site_uuid}/screenshots/{device}
Path parameters:
site_uuidUUIDRequired#
devicestringRequired#
Query parameters:
pathstring#
widthstring#
heightstring#
build_idinteger#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/screenshots/{device} \
  -H "X-API-KEY: <your-api-key>"
Responses:
307Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
404Not Found
JSON
Copied to clipboard
{
  "error": "string"
}

Redirect to lighthouse json response

GET/api/v0/sites/{site_uuid}/screenshots/lighthouse
Path parameters:
site_uuidUUIDRequired#
Query parameters:
pathstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/screenshots/lighthouse \
  -H "X-API-KEY: <your-api-key>"
Responses:
303Redirect
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
404Not Found
JSON
Copied to clipboard
{
  "error": "string"
}

Get site mountings

GET/api/v0/sites/{site_uuid}/site-mountings
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/site-mountings \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "string",
    "id": 0,
    "local_site_id": 0,
    "local_path": "string",
    "remote_site_id": 0,
    "remote_path": "string",
    "remote_artifact": "string",
    "local_site": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "site_name": "string",
      "subpath": "string",
      "stable_domain": "string",
      "ssg": "string",
      "last_synced": "2024-01-01T00:00:00Z",
      "last_output": "2024-01-01T00:00:00Z",
      "last_compiled": "2024-01-01T00:00:00Z",
      "last_compressed": "2024-01-01T00:00:00Z",
      "last_internationalised": "2024-01-01T00:00:00Z",
      "last_published": "2024-01-01T00:00:00Z",
      "last_cleaned": "2024-01-01T00:00:00Z",
      "storage_provider": "string",
      "client_author_name": "string",
      "client_author_email": "string",
      "create_source": "string",
      "hosting_choice": "string",
      "building_locked": true,
      "editing_locked": true,
      "uploads_locked": true,
      "browsing_locked": true,
      "last_compiled_success": "2024-01-01T00:00:00Z",
      "preview_url": "string",
      "documentation_url": "string",
      "support_url": "string",
      "client_editor_route": "string",
      "active_quest": "string",
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "mode": "string",
      "project_id": 0,
      "project_uuid": "string",
      "pr_number": 0,
      "pr_external_url": "string",
      "cloudcannon_config_path": "string",
      "output_storage_provider": "string",
      "domain_name": "string",
      "site_icon_state": "string",
      "sync_error": "string",
      "output_error": "string",
      "has_open_editing_session": true,
      "storage_provider_details": {},
      "output_storage_provider_data": {},
      "has_site_password": true,
      "has_client_password": true,
      "has_main_source_dam": true,
      "build_configuration": {}
    },
    "remote_site": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "site_name": "string",
      "subpath": "string",
      "stable_domain": "string",
      "ssg": "string",
      "last_synced": "2024-01-01T00:00:00Z",
      "last_output": "2024-01-01T00:00:00Z",
      "last_compiled": "2024-01-01T00:00:00Z",
      "last_compressed": "2024-01-01T00:00:00Z",
      "last_internationalised": "2024-01-01T00:00:00Z",
      "last_published": "2024-01-01T00:00:00Z",
      "last_cleaned": "2024-01-01T00:00:00Z",
      "storage_provider": "string",
      "client_author_name": "string",
      "client_author_email": "string",
      "create_source": "string",
      "hosting_choice": "string",
      "building_locked": true,
      "editing_locked": true,
      "uploads_locked": true,
      "browsing_locked": true,
      "last_compiled_success": "2024-01-01T00:00:00Z",
      "preview_url": "string",
      "documentation_url": "string",
      "support_url": "string",
      "client_editor_route": "string",
      "active_quest": "string",
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "mode": "string",
      "project_id": 0,
      "project_uuid": "string",
      "pr_number": 0,
      "pr_external_url": "string",
      "cloudcannon_config_path": "string",
      "output_storage_provider": "string",
      "domain_name": "string",
      "site_icon_state": "string",
      "sync_error": "string",
      "output_error": "string",
      "has_open_editing_session": true,
      "storage_provider_details": {},
      "output_storage_provider_data": {},
      "has_site_password": true,
      "has_client_password": true,
      "has_main_source_dam": true,
      "build_configuration": {}
    }
  }
]
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Create site mounting

POST/api/v0/sites/{site_uuid}/site-mountings
Path parameters:
site_uuidUUIDRequired#
Request body:
local_site_idintegerRequired#
local_pathstringRequired#
remote_site_idintegerRequired#
remote_pathstringRequired#
remote_artifactstringRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/site-mountings \
  -X POST \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "local_site_id": 0,
    "local_path": "string",
    "remote_site_id": 0,
    "remote_path": "string",
    "remote_artifact": "string"
  }'
Responses:
201Created
JSON
Copied to clipboard
{
  "uuid": "string",
  "id": 0,
  "local_site_id": 0,
  "local_path": "string",
  "remote_site_id": 0,
  "remote_path": "string",
  "remote_artifact": "string",
  "local_site": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "site_name": "string",
    "subpath": "string",
    "stable_domain": "string",
    "ssg": "string",
    "last_synced": "2024-01-01T00:00:00Z",
    "last_output": "2024-01-01T00:00:00Z",
    "last_compiled": "2024-01-01T00:00:00Z",
    "last_compressed": "2024-01-01T00:00:00Z",
    "last_internationalised": "2024-01-01T00:00:00Z",
    "last_published": "2024-01-01T00:00:00Z",
    "last_cleaned": "2024-01-01T00:00:00Z",
    "storage_provider": "string",
    "client_author_name": "string",
    "client_author_email": "string",
    "create_source": "string",
    "hosting_choice": "string",
    "building_locked": true,
    "editing_locked": true,
    "uploads_locked": true,
    "browsing_locked": true,
    "last_compiled_success": "2024-01-01T00:00:00Z",
    "preview_url": "string",
    "documentation_url": "string",
    "support_url": "string",
    "client_editor_route": "string",
    "active_quest": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "mode": "string",
    "project_id": 0,
    "project_uuid": "string",
    "pr_number": 0,
    "pr_external_url": "string",
    "cloudcannon_config_path": "string",
    "output_storage_provider": "string",
    "domain_name": "string",
    "site_icon_state": "string",
    "sync_error": "string",
    "output_error": "string",
    "has_open_editing_session": true,
    "storage_provider_details": {},
    "output_storage_provider_data": {},
    "has_site_password": true,
    "has_client_password": true,
    "has_main_source_dam": true,
    "build_configuration": {}
  },
  "remote_site": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "site_name": "string",
    "subpath": "string",
    "stable_domain": "string",
    "ssg": "string",
    "last_synced": "2024-01-01T00:00:00Z",
    "last_output": "2024-01-01T00:00:00Z",
    "last_compiled": "2024-01-01T00:00:00Z",
    "last_compressed": "2024-01-01T00:00:00Z",
    "last_internationalised": "2024-01-01T00:00:00Z",
    "last_published": "2024-01-01T00:00:00Z",
    "last_cleaned": "2024-01-01T00:00:00Z",
    "storage_provider": "string",
    "client_author_name": "string",
    "client_author_email": "string",
    "create_source": "string",
    "hosting_choice": "string",
    "building_locked": true,
    "editing_locked": true,
    "uploads_locked": true,
    "browsing_locked": true,
    "last_compiled_success": "2024-01-01T00:00:00Z",
    "preview_url": "string",
    "documentation_url": "string",
    "support_url": "string",
    "client_editor_route": "string",
    "active_quest": "string",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "mode": "string",
    "project_id": 0,
    "project_uuid": "string",
    "pr_number": 0,
    "pr_external_url": "string",
    "cloudcannon_config_path": "string",
    "output_storage_provider": "string",
    "domain_name": "string",
    "site_icon_state": "string",
    "sync_error": "string",
    "output_error": "string",
    "has_open_editing_session": true,
    "storage_provider_details": {},
    "output_storage_provider_data": {},
    "has_site_password": true,
    "has_client_password": true,
    "has_main_source_dam": true,
    "build_configuration": {}
  }
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update site SSL Custom

PUT/api/v0/sites/{site_uuid}/ssl
Path parameters:
site_uuidUUIDRequired#
Request body:
ssl_certificate_idintegerNullable#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "ssl_certificate_id": 0
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Remove site SSL Custom

DELETE/api/v0/sites/{site_uuid}/ssl
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "auto_generate_ssl": true,
  "authentication": "string",
  "default_locale": "string",
  "uses_i18n": true,
  "geolocation": true,
  "serve_extensionless": true,
  "flags": {},
  "force_extensionless": true,
  "force_ssl": true,
  "keep_form_hook_days": 0,
  "needs_clean": true,
  "automatic_builds_state": "string",
  "publish_mode": "string",
  "destroy_on_publish": true,
  "priority_domain_at": "2024-01-01T00:00:00Z",
  "prevent_client_password_save": true,
  "recaptcha_key": "string",
  "recaptcha_secret": "string",
  "saml_data": "string",
  "compiler_order": [
    "string"
  ],
  "base_domain_id": 0,
  "latest_hosted_build_id": 0,
  "ssl_certificate_id": 0,
  "main_source_dam": "string",
  "editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "technical_editor_group_uuid": "00000000-0000-0000-0000-000000000000",
  "client_share_group_uuid": "00000000-0000-0000-0000-000000000000",
  "organisation_uuid": "00000000-0000-0000-0000-000000000000",
  "base_domain_uuid": "00000000-0000-0000-0000-000000000000",
  "cloudflare_hostname_uuid": "00000000-0000-0000-0000-000000000000",
  "latest_hosted_build_uuid": "00000000-0000-0000-0000-000000000000",
  "pending_transfer_request_uuid": "00000000-0000-0000-0000-000000000000",
  "site_inboxes": [
    {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "id": 0,
      "default_inbox": true,
      "site_id": 0,
      "inbox_uuid": "string",
      "visible": true,
      "require_captcha": true,
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "inbox": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "name": "string",
        "key": "string",
        "monthly_quota": 0,
        "keep_form_hook_days": 0,
        "organisation_id": 0,
        "captcha_type": "string",
        "captcha_key": "string",
        "captcha_secret": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "inbox_targets": []
      }
    }
  ],
  "base_domain": {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "base_domain": "string",
    "uses_dns": true,
    "auto_generate_ssl_failures": 0,
    "auto_generate_ssl_max_failures": 0,
    "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
    "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
    "in_cloudflare_beta": true,
    "cloudflare_dns_migrated": true,
    "cloudflare_zone_id": "string",
    "cloudflare_zone_create_error": "string",
    "cloudflare_zone_create_error_from_cloudflare": true,
    "mx_record": "string",
    "spf_record": "string",
    "minimum_tls_version": "string",
    "cloudflare_name_servers": [
      "string"
    ],
    "name_servers": [
      "string"
    ],
    "cloudflare_dns_migration": [
      {}
    ],
    "a_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "cname_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ],
    "txt_record": [
      {
        "subdomain": "string",
        "target": "string"
      }
    ]
  },
  "site_dams": [
    {
      "uuid": "string",
      "id": 0,
      "site_id": 0,
      "dam_uuid": "string",
      "config": {},
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uploads_locked": true,
      "reference_key": "string",
      "site_uuid": "00000000-0000-0000-0000-000000000000",
      "dam": {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "id": 0,
        "access_key": "string",
        "base_url": "string",
        "created_at": "2024-01-01T00:00:00Z",
        "dam_type": "string",
        "name": "string",
        "updated_at": "2024-01-01T00:00:00Z",
        "max_upload_size": 0,
        "organisation_uuid": "00000000-0000-0000-0000-000000000000",
        "config": {},
        "extra_params": "string"
      }
    }
  ]
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get state for SSL Auto

GET/api/v0/sites/{site_uuid}/ssl/auto
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl/auto \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "ssl_certificate_id": 0,
  "auto_generate_ssl_failures": 0,
  "auto_generate_ssl_max_failures": 0,
  "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
  "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
  "auto_generate_ssl_error_code": "string",
  "auto_generate_ssl_errored_at": "2024-01-01T00:00:00Z"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Retry to Generate SSL Auto

POST/api/v0/sites/{site_uuid}/ssl/auto
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl/auto \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "ssl_certificate_id": 0,
  "auto_generate_ssl_failures": 0,
  "auto_generate_ssl_max_failures": 0,
  "next_ssl_generate_attempt_at": "2024-01-01T00:00:00Z",
  "ssl_generation_failing_email_sent_at": "2024-01-01T00:00:00Z",
  "auto_generate_ssl_error_code": "string",
  "auto_generate_ssl_errored_at": "2024-01-01T00:00:00Z"
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Get Cloudflare state for SSL

GET/api/v0/sites/{site_uuid}/ssl/cloudflare
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl/cloudflare \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "ssl_status": "string",
  "ssl_errors": null,
  "ssl_certificate_id": 0,
  "custom_hostname_id": "string",
  "min_tls_version": "string",
  "response": {}
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Retry Cloudflare SSL Setup

POST/api/v0/sites/{site_uuid}/ssl/cloudflare
Path parameters:
site_uuidUUIDRequired#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl/cloudflare \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{
  "ssl_status": "string",
  "ssl_errors": null,
  "ssl_certificate_id": 0,
  "custom_hostname_id": "string",
  "min_tls_version": "string",
  "response": {}
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

Update Cloudflare SSL Setup

PUT/api/v0/sites/{site_uuid}/ssl/cloudflare
Path parameters:
site_uuidUUIDRequired#
Request body:
ssl_certificate_idintegerNullable#
validation_methodstring#
wildcardboolean#
min_tls_versionstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/ssl/cloudflare \
  -X PUT \
  -H "X-API-KEY: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "ssl_certificate_id": 0,
    "validation_method": "string",
    "wildcard": true,
    "min_tls_version": "string"
  }'
Responses:
200OK
JSON
Copied to clipboard
{
  "ssl_status": "string",
  "ssl_errors": null,
  "ssl_certificate_id": 0,
  "custom_hostname_id": "string",
  "min_tls_version": "string",
  "response": {}
}
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
422Unprocessable
JSON
Copied to clipboard
{
  "errors": {}
}

List site syncs

GET/api/v0/sites/{site_uuid}/syncs
Path parameters:
site_uuidUUIDRequired#
Filters:
after_identifierstring#
completed_atstring#
created_at_gtstring#
created_at_gtestring#
created_at_ltstring#
created_at_ltestring#
diff_idstring#
idinteger#
identifierstring#
namestring#
org_idinteger#
org_uuidstring#
providerstring#
site_idinteger#
site_uuidstring#
successfulboolean#
updated_at_gtstring#
updated_at_gtestring#
updated_at_ltstring#
updated_at_ltestring#
uuidstring#
Sorting:
sort_attributestring#

Attribute to sort the results by

Defaults to: "created_at"

Allowed values: id uuid created_at

sort_directionstring#

Direction to sort the results

Defaults to: "DESC"

Allowed values: ASC DESC

Pagination:
pageinteger#

Page number to fetch (1-indexed)

itemsinteger#

Number of items per page

Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/syncs \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "id": 0,
    "name": "string",
    "successful": true,
    "identifier": "string",
    "after_identifier": "string",
    "diff_id": "string",
    "completed_at": "2024-01-01T00:00:00Z",
    "provider": "string",
    "provider_data": {},
    "triggered_build": true,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "site_uuid": "00000000-0000-0000-0000-000000000000"
  }
]
401Unauthorized
JSON
Copied to clipboard
{
  "error": "string"
}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Start watching a site path

POST/api/v0/sites/{site_uuid}/watchers
Path parameters:
site_uuidUUID | integerRequired#
Query parameters:
pathstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/watchers \
  -X POST \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}

Stop watching a site path

DELETE/api/v0/sites/{site_uuid}/watchers
Path parameters:
site_uuidUUID | integerRequired#
Query parameters:
pathstring#
Example request:
Bash
Copied to clipboard
curl https://app.cloudcannon.com/api/v0/sites/{site_uuid}/watchers \
  -X DELETE \
  -H "X-API-KEY: <your-api-key>"
Responses:
200OK
JSON
Copied to clipboard
{}
403Forbidden
JSON
Copied to clipboard
{
  "error": "string"
}
Open in a new tab