Create a Pages deployment
Create a Cloudflare Pages deployment from a Git branch or Direct Upload manifest. Git repositories must already be authorized in Cloudflare Pages.
Security
API Token
The preferred authorization scheme for interacting with the Cloudflare API. Create a token.
API Email + API Key
The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.
The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.
Accepted Permissions (at least one required)
Path Parameters
Body ParametersForm Data
Worker bundle file in multipart/form-data format. Mutually exclusive with _worker.js.
Cannot specify both _worker.js and _worker.bundle in the same request.
Maximum size: 25 MiB.
Worker JavaScript file. Mutually exclusive with _worker.bundle.
Cannot specify both _worker.js and _worker.bundle in the same request.
Git branch to deploy. Uses the branch’s HEAD; defaults to the project’s production branch.
Create a Pages deployment
curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/pages/projects/$PROJECT_NAME/deployments \
-H 'Content-Type: multipart/form-data' \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-F branch=staging \
-F commit_dirty=false \
-F commit_hash=a1b2c3d4e5f6 \
-F commit_message='Update homepage' \
-F manifest='{"index.html": "abc123", "style.css": "def456"}' \
-F pages_build_output_dir=dist{
"errors": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"pointer": "pointer"
}
}
],
"messages": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"pointer": "pointer"
}
}
],
"result": {
"id": "f64788e9-fccd-4d4a-a28a-cb84f88f6",
"aliases": [
"https://branchname.projectname.pages.dev"
],
"build_config": {
"web_analytics_tag": "cee1c73f6e4743d0b5e6bb1a0bcaabcc",
"web_analytics_token": "021e1057c18547eca7b79f2516f06o7x",
"build_caching": true,
"build_command": "npm run build",
"destination_dir": "build",
"root_dir": "/"
},
"created_on": "2021-03-09T00:55:03.923456Z",
"deployment_trigger": {
"metadata": {
"branch": "main",
"commit_dirty": false,
"commit_hash": "ad9ccd918a81025731e10e40267e11273a263421",
"commit_message": "Update index.html"
},
"type": "ad_hoc"
},
"env_vars": {
"foo": {
"type": "plain_text",
"value": "hello world"
}
},
"environment": "preview",
"is_skipped": true,
"latest_stage": {
"ended_on": "2021-03-09T00:58:59.045655Z",
"name": "deploy",
"started_on": "2021-03-09T00:55:03.923456Z",
"status": "success"
},
"modified_on": "2021-03-09T00:58:59.045655Z",
"project_id": "7b162ea7-7367-4d67-bcde-1160995d5",
"project_name": "this-is-my-project-01",
"short_id": "f64788e9",
"source": {
"config": {
"deployments_enabled": true,
"owner": "my-org",
"owner_id": "12345678",
"path_excludes": [
"string"
],
"path_includes": [
"string"
],
"pr_comments_enabled": true,
"preview_branch_excludes": [
"string"
],
"preview_branch_includes": [
"string"
],
"preview_deployment_setting": "all",
"production_branch": "main",
"production_deployments_enabled": true,
"repo_id": "12345678",
"repo_name": "my-repo"
},
"type": "github"
},
"stages": [
{
"ended_on": "2021-06-03T15:39:03.134378Z",
"name": "queued",
"started_on": "2021-06-03T15:38:15.608194Z",
"status": "active"
},
{
"ended_on": null,
"name": "initialize",
"started_on": null,
"status": "idle"
},
{
"ended_on": null,
"name": "clone_repo",
"started_on": null,
"status": "idle"
},
{
"ended_on": null,
"name": "build",
"started_on": null,
"status": "idle"
},
{
"ended_on": null,
"name": "deploy",
"started_on": null,
"status": "idle"
}
],
"url": "https://f64788e9.ninjakittens.pages.dev",
"skip_reason": "commit_message",
"uses_functions": true
},
"success": true
}Returns Examples
{
"errors": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"pointer": "pointer"
}
}
],
"messages": [
{
"code": 1000,
"message": "message",
"documentation_url": "documentation_url",
"source": {
"pointer": "pointer"
}
}
],
"result": {
"id": "f64788e9-fccd-4d4a-a28a-cb84f88f6",
"aliases": [
"https://branchname.projectname.pages.dev"
],
"build_config": {
"web_analytics_tag": "cee1c73f6e4743d0b5e6bb1a0bcaabcc",
"web_analytics_token": "021e1057c18547eca7b79f2516f06o7x",
"build_caching": true,
"build_command": "npm run build",
"destination_dir": "build",
"root_dir": "/"
},
"created_on": "2021-03-09T00:55:03.923456Z",
"deployment_trigger": {
"metadata": {
"branch": "main",
"commit_dirty": false,
"commit_hash": "ad9ccd918a81025731e10e40267e11273a263421",
"commit_message": "Update index.html"
},
"type": "ad_hoc"
},
"env_vars": {
"foo": {
"type": "plain_text",
"value": "hello world"
}
},
"environment": "preview",
"is_skipped": true,
"latest_stage": {
"ended_on": "2021-03-09T00:58:59.045655Z",
"name": "deploy",
"started_on": "2021-03-09T00:55:03.923456Z",
"status": "success"
},
"modified_on": "2021-03-09T00:58:59.045655Z",
"project_id": "7b162ea7-7367-4d67-bcde-1160995d5",
"project_name": "this-is-my-project-01",
"short_id": "f64788e9",
"source": {
"config": {
"deployments_enabled": true,
"owner": "my-org",
"owner_id": "12345678",
"path_excludes": [
"string"
],
"path_includes": [
"string"
],
"pr_comments_enabled": true,
"preview_branch_excludes": [
"string"
],
"preview_branch_includes": [
"string"
],
"preview_deployment_setting": "all",
"production_branch": "main",
"production_deployments_enabled": true,
"repo_id": "12345678",
"repo_name": "my-repo"
},
"type": "github"
},
"stages": [
{
"ended_on": "2021-06-03T15:39:03.134378Z",
"name": "queued",
"started_on": "2021-06-03T15:38:15.608194Z",
"status": "active"
},
{
"ended_on": null,
"name": "initialize",
"started_on": null,
"status": "idle"
},
{
"ended_on": null,
"name": "clone_repo",
"started_on": null,
"status": "idle"
},
{
"ended_on": null,
"name": "build",
"started_on": null,
"status": "idle"
},
{
"ended_on": null,
"name": "deploy",
"started_on": null,
"status": "idle"
}
],
"url": "https://f64788e9.ninjakittens.pages.dev",
"skip_reason": "commit_message",
"uses_functions": true
},
"success": true
}