---
title: "POST /internal/ci-builds/{build_id}/result"
method: POST
path: "/internal/ci-builds/{build_id}/result"
tags: ["CI runner"]
---

# POST /internal/ci-builds/{build_id}/result

`POST /internal/ci-builds/{build_id}/result`

## Request

- Base URL: `/api` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/internal/ci-builds/{build_id}/result`
- Auth: HTTP bearer

## Path parameters

- `build_id` string, required

## Request body

- RunnerResult
  - `build_id` string, required
  - `digest` string, required
  - `duration_ms` integer, required
  - `image` ImageInfo, required: Information about a Docker image, including architecture and platform details
    - `architecture` string, required: Image architecture (e.g., "amd64", "arm64")
    - `config` ImageConfig: Runtime configuration baked into an image, read on the node that owns it. A worker build returns this so the control plane never needs a local copy of the image to learn which port it listens on.
      - `entrypoint` string[]
      - `env` string[]: `ENV` entries as `NAME=value`. Values are whatever the Dockerfile baked in; callers must not persist or log them.
      - `exposed_ports` integer[]: Ports from `EXPOSE`, sorted ascending, without protocol.
      - `user` string, nullable: `USER`, when the image sets one.
    - `created` string, nullable: Creation timestamp
    - `id` string, required: Image ID (sha256:...)
    - `os` string, required: Operating system (e.g., "linux")
    - `platform` string, required: Full platform string (e.g., "linux/amd64")
    - `size_bytes` integer, required: Image size in bytes
    - `tags` string[], required: Image tags
    - `working_dir` string, nullable: Working directory (WORKDIR from Dockerfile)
  - `platforms` string[], required
  - `run_id` string, required

## Response `204`

Verified result accepted and token revoked

## Other responses

- `401`: Token required
- `403`: Token rejected
- `409`: Verification rejected or build inactive
- `500`: Storage failed

## Changes

> 81 revisions in range; 1 not diffed.

- **2026-10-17** `de8eaf663007`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gotempsh/apis/temps/changes/internal/ci-builds/:build_id/result/post.md)

---

[API](https://skmtc.dev/gotempsh/apis/temps.md) · [All operations](https://skmtc.dev/gotempsh/apis/temps/llms.txt) · [OpenAPI document](https://skmtc.dev/gotempsh/apis/temps/revisions/ab6d5d19e930?raw)
