---
title: "Create Region Admin"
method: POST
path: "/admin/regions"
tags: ["admin"]
---

# Create Region Admin

`POST /admin/regions`

Create a region (save row + enqueue the scoped backfill in one action,
§2.5). 409 if the id already exists — PATCH to edit.

## Request body

- RegionWrite — The write DTO shared by every writer (admin POST/PATCH, builder, seeds). Doubles as the admin request body, so its constraints ARE the API's 422s.
  - `id` string, required
  - `name` string, required
  - `outline` object, required
  - `area_km2` number, nullable
  - `source` 'osm-relation' | 'admin-union' | 'hand-drawn'
  - `source_refs` string[]
  - `enabled` boolean

## Response `200`

Successful Response

- RegionDetail — Full region incl. the GeoJSON outline (for the map preview).
  - `id` string, required
  - `name` string, required
  - `area_km2` number, required
  - `source` string, required
  - `source_refs` string[], required
  - `enabled` boolean, required
  - `member_count` integer, required
  - `backfill_status` BackfillStatus, required — The scoped backfill's progress, as the admin page polls it.
    - `state` 'queued' | 'running' | 'done' | 'error', required
    - `scanned` integer
    - `tagged` integer
    - `changed` integer
    - `error` string, nullable
    - `updated_at` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `outline` object, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stardrift/fastapi/revisions/00746572572a/schema)
