Recent searches

in

Sites

On this page

  1. GETGet a Site's details
  2. PUTUpdate a Site's details
  3. DELETEDelete a Site
  4. GETList a Site's Activity
  5. GETGet a Site's Build duration analytics
  6. GETGet a Site's Hosting Bandwidth
  7. GETGet a Site's Hosting Bandwidth per URL
  8. GETGet a Site's Hosting Bandwidth for a single URL
  9. GETList a Site's Backups
  10. POSTCreate a Backup
  11. PUTUpdate a Site's authentication method
  12. GETList a Site's Bearer Tokens
  13. POSTCreate a Bearer Token
  14. PUTUpdate a Site's Client Sharing password
  15. PUTUpdate a Site's SAML configuration
  16. PUTUpdate a Site's authentication password
  17. GETList a Site's Account Authentication users
  18. POSTAdd an allowed user to a Site's Account Authentication
  19. PUTUpdate a Site's build configuration
  20. GETList a Site's Builds
  21. POSTStart a Build for a Site
  22. DELETECancel a Site's current Build
  23. PUTUpdate a Site's Client Sharing configuration
  24. POSTCopy a Site
  25. PUTUpdate a Site's DAM configuration
  26. GETList a Site's DAMs
  27. POSTConnect a DAM to a Site
  28. PUTUpdate a Site's Custom Domain
  29. POSTSet a Site as the fallback redirect for its Base Domain
  30. GETList a Site's Editing Sessions
  31. POSTCreate an Editing Session for a Site
  32. GETGet a Site's latest open Editing Session
  33. GETList a Site's files
  34. GETGet a file from a Site
  35. GETGet a Site file's metadata
  36. GETView a resized image from a Site
  37. GETGet a Site file's sorting
  38. POSTComplete a ZIP file upload
  39. GETList a Site's Form Hooks
  40. PUTUpdate a Site's hosting configuration
  41. GETList a Site's Inboxes
  42. POSTConnect an Inbox to a Site
  43. GETGet the DAM a Site uses for relative asset paths
  44. PUTSet which DAM a Site uses for relative asset paths
  45. GETList Site Sharing Members
  46. POSTMove a Site Sharing Member to a different Permission Group
  47. DELETERemove a Site Sharing Member or cancel a pending invitation
  48. POSTAdd a Build Deploy to a Site
  49. PUTUpdate a Site's Build Deploy
  50. DELETERemove a Site's Build Deploy
  51. POSTTrigger a Site's Build Deploy
  52. GETList a Site's Build Deploys
  53. GETList pending Site Sharing Members
  54. POSTConnect a Site to a Git Provider
  55. PUTUpdate a Site's Git Provider settings
  56. DELETERemove a Site's Git Provider
  57. GETList a Site's branches
  58. POSTCreate a branch from a Site's editing branch
  59. POSTMerge a Site's changes into its publish branch
  60. POSTSet a Site's publish branch
  61. GETCompare a Site's changes waiting to be published
  62. GETCompare upstream changes waiting to be pulled into a Site
  63. POSTMerge upstream changes into a Site's editing branch
  64. GETList open Pull Requests into the Site's Publish Branch
  65. POSTCreate a Pull Request into the Site's Publish Branch
  66. GETGet a Pull Request's details
  67. DELETEClose a Pull Request
  68. GETList a Pull Request's commits
  69. PUTMerge a Pull Request
  70. POSTReconnect a Site's Git Provider
  71. POSTSync a Site with its Git Provider
  72. GETList open Pull Requests from the Site's Publish Branch
  73. POSTCreate a Pull Request from the Site's Publish Branch
  74. PUTUpdate a Site's publish method
  75. GETGet a Site's scan details
  76. GETList a Site's Scheduled Builds
  77. POSTCreate a Scheduled Build
  78. GETGet a presigned S3 URL for a Site's screenshot hashes
  79. GETView a Site's screenshot
  80. GETGet a Site's Lighthouse report
  81. GETList a Site's Site Mountings
  82. POSTCreate a Site Mounting
  83. PUTUpdate a Site's SSL certificate
  84. DELETERemove a Site's SSL certificate
  85. GETGet a Site's automatic SSL state
  86. POSTRetry a Site's automatic SSL generation
  87. GETGet a Site's Cloudflare SSL state
  88. POSTRetry a Site's Cloudflare SSL setup
  89. PUTUpdate a Site's Cloudflare SSL setup
  90. GETList a Site's Syncs
  91. POSTStart watching a Site path
  92. DELETEStop watching a Site path

Get a Site's 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 a Site's 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 a 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 a Site's 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 a Site's Build duration analytics

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

The start of the reporting period

end_timestringRequired#

The end of the reporting period

periodstringRequired#

The interval to group results by

Allowed values: hourly daily weekly

timezonestringRequired#

The timezone for the reporting period

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 a Site's Hosting Bandwidth

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

The start of the reporting period

end_timestring#

The end of the reporting period

periodstring#

The interval to group results by

Allowed values: hourly daily weekly

timezonestring#

The timezone for the reporting period

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 a Site's Hosting Bandwidth per URL

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

The start of the reporting period

end_timestringRequired#

The end of the reporting period

periodstringRequired#

The interval to group results by

Allowed values: hourly daily weekly

timezonestringRequired#

The timezone for the reporting period

offsetinteger#

The number of results to skip

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 a Site's Hosting Bandwidth for a single URL

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

The URL to report bandwidth for

start_timestringRequired#

The start of the reporting period

end_timestringRequired#

The end of the reporting period

periodstringRequired#

The interval to group results by

Allowed values: hourly daily weekly

timezonestringRequired#

The timezone for the reporting period

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 a Site's 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 a Backup

POST/api/v0/sites/{site_uuid}/archives
Path parameters:
site_uuidUUIDRequired#
Request body:
exclude_gitboolean#

Exclude Git history from the Backup

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 a Site's 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 a Site's 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 a 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 a Site's Client Sharing password

PUT/api/v0/sites/{site_uuid}/authentication/client-password
Path parameters:
site_uuidUUIDRequired#
Request body:
passwordstring#

The Client Sharing password. Leave blank to remove it.

accept_billing_increaseboolean#

Accept any billing increase. Without this, the request will fail if you exceed the number of seats in your Subscription Plan.

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 a Site's SAML configuration

PUT/api/v0/sites/{site_uuid}/authentication/saml
Path parameters:
site_uuidUUIDRequired#
Request body:
saml_datastring#

The Site's SAML authentication configuration

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 a Site's authentication password

PUT/api/v0/sites/{site_uuid}/authentication/stable-password
Path parameters:
site_uuidUUIDRequired#
Request body:
stable_passwordstring#

The authentication password. Leave blank to remove it.

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 a Site's Account 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"
}

Add an allowed user to a Site's Account Authentication

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 a Site's 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 a Site's 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"
}

Start a Build for a Site

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 a Site's 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 a Site's 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 a 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#

The branch to use for the copied Site

publish_branchboolean#

Set the copied Site's Publish Branch to the source Site's branch

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 a Site's 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": {}
}

List a Site's 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"
}

Connect a DAM to a Site

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 a Site's Custom Domain

PUT/api/v0/sites/{site_uuid}/domain
Path parameters:
site_uuidUUIDRequired#
Request body:
domain_namestringNullable#

The Custom Domain for the Site. Leave blank to remove it.

subpathstringNullable#

An optional subpath under the domain where the Site is served.

accept_billing_increaseboolean#

Accept any billing increase. Without this, the request will fail if you exceed the number of domains in your Subscription Plan.

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": {}
}

Set a Site as the fallback redirect for its Base 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": {}
}

List a Site's 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 an Editing Session for 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 a Site's latest open Editing Session

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 a Site's files

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"
}

Get a file from a Site

GET/api/v0/sites/{site_uuid}/files/{path}
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#

The path to the file within the Site

Query parameters:
downloadboolean#

Set to true to download the file instead of viewing it

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": {}
}

Get a Site file's metadata

GET/api/v0/sites/{site_uuid}/files/{path}/metadata
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#

The path to the file within the Site

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": {}
}

View a resized image from a Site

GET/api/v0/sites/{site_uuid}/files/{path}/resized
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#

The path to the file within the Site

Query parameters:
widthinteger#

The width to resize the image to, in pixels

heightinteger#

The height to resize the image to, in pixels

content_typestring#

The content type to return the image as

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": {}
}

Get a Site file's sorting

GET/api/v0/sites/{site_uuid}/files/{path}/sorting
Path parameters:
site_uuidUUIDRequired#
pathstringRequired#

The path to the file within the Site

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 a ZIP file upload

POST/api/v0/sites/{site_uuid}/files/zip
Path parameters:
site_uuidUUIDRequired#
Request body:
zipobject#
keystring#

The storage key of the uploaded ZIP file

checksumstring#

The checksum of the uploaded ZIP file

typestring#

The type of the uploaded ZIP file

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 a Site's Form Hooks

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

Filter Form Hooks by category

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 a Site's 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": {}
}

List a Site's 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"
}

Connect an Inbox to a Site

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 DAM a Site uses for relative asset paths

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 which DAM a Site uses for relative asset paths

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 Sharing Members

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

Filter Members by name or email

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 Sharing Member to a different Permission Group

POST/api/v0/sites/{site_uuid}/members/{email}
Path parameters:
site_uuidUUIDRequired#
emailstringRequired#

The Member or pending Member's email address

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 Sharing Member or cancel a pending invitation

DELETE/api/v0/sites/{site_uuid}/members/{email}
Path parameters:
site_uuidUUIDRequired#
emailstringRequired#

The Member or pending Member's email address

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 a Build Deploy to a Site

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 a Site's Build Deploy

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 a Site's Build Deploy

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": {}
}

Trigger a Site's Build Deploy

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 a Site's Build Deploys

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 Sharing 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"
}

Connect a Site to a Git Provider

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

The Git Provider to connect

Allowed values: github github_enterprise_server bitbucket gitlab self_hosted_gitlab

custom_dataobject#
branchstring#

The branch to sync the Site's files from

full_namestring#

The repository's full name, e.g. org/repo

webhook_idstring#

The ID of the webhook created on the repository

lfsEnabledboolean#

Enable Git LFS for the repository

fast_compile_disabledboolean#

When a Site is branched, the branched Site gets a copy of its build files. This option disables that behavior.

publish_branchstring#

The branch to publish changes to

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 a Site's Git Provider settings

PUT/api/v0/sites/{site_uuid}/providers
Path parameters:
site_uuidUUIDRequired#
Request body:
custom_dataobject#
full_namestring#

The repository's full name. Must match the connected repository — it cannot be changed here.

branchstring#

The branch to sync the Site's files from

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 a Site's Git 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 a Site's 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"
}

Create a branch from a Site's editing 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 a Site's changes into its publish branch

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 a Site's publish branch

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 a Site's changes waiting to be published

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 upstream changes waiting to be pulled into a Site

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 into a Site's editing branch

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 open Pull Requests into the Site's Publish Branch

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 a Pull Request into the Site's Publish Branch

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 a Pull Request's details

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

The Pull Request's number

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 a Pull Request

DELETE/api/v0/sites/{site_uuid}/providers/pull-requests/{number}
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#

The Pull Request's number

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": {}
}

List a Pull Request's commits

GET/api/v0/sites/{site_uuid}/providers/pull-requests/{number}/commits
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#

The Pull Request's number

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 a Pull Request

PUT/api/v0/sites/{site_uuid}/providers/pull-requests/{number}/merge
Path parameters:
site_uuidUUIDRequired#
numberintegerRequired#

The Pull Request's number

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": {}
}

Reconnect a Site's Git Provider

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

Reset all files from the Git Provider instead of syncing changes

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 a Site with its Git Provider

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

Sync direction: push local changes to the Git Provider, or pull provider changes to the Site

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 open Pull Requests from the Site's Publish Branch

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 a Pull Request from the Site's Publish Branch

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 a Site's 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 a Site's 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 a Site's 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 a Scheduled Build

POST/api/v0/sites/{site_uuid}/scheduled-builds
Path parameters:
site_uuidUUIDRequired#
Request body:
namestringRequired#

A name for the Scheduled Build.

periodintegerNullable#

How often to repeat the build, in seconds (minimum 3600). Leave blank to run once.

run_datestring (date-time)Required#

The date and time to run the build.

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": {}
}

Get a presigned S3 URL for a Site's screenshot hashes

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"
}

View a Site's screenshot

GET/api/v0/sites/{site_uuid}/screenshots/{device}
Path parameters:
site_uuidUUIDRequired#
devicestringRequired#

The device viewport to render: mobile or desktop

Query parameters:
pathstring#

The page path to screenshot

widthstring#

The width of the screenshot, in pixels

heightstring#

The height of the screenshot, in pixels

build_idinteger#

The Build to screenshot

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"
}

Get a Site's Lighthouse report

GET/api/v0/sites/{site_uuid}/screenshots/lighthouse
Path parameters:
site_uuidUUIDRequired#
Query parameters:
pathstring#

The page path to report on

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"
}

List a Site's 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 a 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 a Site's SSL certificate

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 a Site's SSL certificate

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 a Site's automatic SSL state

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 a Site's automatic SSL generation

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 a Site's Cloudflare SSL state

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 a Site's 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 a Site's 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 a Site's 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#

The file path to watch

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#

The file path to stop watching

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