---
title: "Create a runner pool"
method: POST
path: "/runners/runner-pools"
tags: ["Self-Hosted Runners"]
---

# Create a runner pool

`POST /runners/runner-pools`

Creates a new self-hosted runner pool

## Request body

- CreateRunnerPoolRequest
  - `name` string, required — Name of the runner pool
  - `labels` string[] — Labels to assign to the runner pool
  - `description` string — Description of the runner pool

## Response `201`

Runner pool created successfully

- CreateRunnerPoolResponse
  - `poolId` string — ID of the created runner pool
  - `jwt` JWTToken
    - `token` string — JWT token for runner authentication
    - `expiresAt` string, date-time — Token expiration timestamp

## Other responses

- `400` — Bad Request Error
- `401` — Unauthorized Error
- `403` — Insufficient permissions
- `409` — Conflict Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/firefly/apis/api-gateway.md) · [All operations](https://skmtc.net/firefly/apis/api-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/firefly/api-gateway/revisions/eea119b4113f/schema)
