POST
POST /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster} — GitHub API
GitHub token (required); https://api.github.com
GitHub APISet cluster deployment records
- Base URL
- https://api.github.com
- Auth
- Authorization: Bearer <GITHUB_API_KEY>
- Last verified
- 2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 345 tokens · Vary: Accept
→ 345 tokens · Vary: Accept
Critical gotchas
GitHub recommends an Accept: application/vnd.github+json header and an explicit X-GitHub-Api-Version header.
Fine-grained tokens only authorize repositories and permissions selected when the token is created.
cURL
curl -X POST 'https://api.github.com/orgs/example-org/artifacts/metadata/deployment-record/cluster/example-cluster' \ -H "Authorization: Bearer $GITHUB_TOKEN" \ -H 'Accept: application/vnd.github+json' \ -H 'X-GitHub-Api-Version: 2026-03-10' \ -H 'Content-Type: application/json' \ -d '{ "logical_environment": "example-logical-environment", "deployments": [ { "name": "example-name", "digest": "example-digest", "version": "1.2.3", "status": "deployed", "deployment_name": "example-deployment-name", "github_repository": "my-github-repo", "tags": {}, "runtime_risks": [ "critical-resource" ] } ]}'
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| org | path | string | Yes | The organization name. The name is not case sensitive. |
| cluster | path | string | Yes | The cluster name. |
| logical_environment | body | string | Yes | The stage of the deployment. |
| physical_environment | body | string | No | The physical region of the deployment. |
| deployments | body | object[] | Yes | The list of deployments to record. |
| partial_success | body | boolean | No | When enabled, deployments associated with repositories the actor can write to are processed while deployments associated with repositories that cannot be resolved or written to by the actor are skipped and reported in the `errors` array. When false (the default), the endpoint returns an error if any targeted repository cannot be resolved, the actor lacks write access, or no matching attestation can be found. |
| return_records | body | boolean | No | If true, the endpoint will return the set records in the response body |
Response 200 OK
{
"total_count": 0,
"deployment_records": [
{
"id": 0,
"digest": "string",
"logical_environment": "string",
"physical_environment": "string",
"cluster": "string",
"deployment_name": "string",
"tags": {},
"runtime_risks": [
"critical-resource"
],
"created_at": "string",
"updated_at": "string",
"attestation_id": 0
}
]
} Get a free GitHub API key → sponsored Affiliate link - we may earn a commission, at no extra cost to you.