---
title: "Settle Unsettled Jobs"
method: POST
path: "/admin/billing/jobs/settle-unsettled"
tags: ["admin-billing"]
---

# Settle Unsettled Jobs

`POST /admin/billing/jobs/settle-unsettled`

Projection of billing.jobs.settle_unsettled (cron — service/cron Bearer token).

Also runs processing.jobs.reap in the same nightly pass: settle_unsettled handles
jobs that reached a TERMINAL status but never settled; reap is the complement —
jobs stuck NON-terminal because their worker died (fail-or-retry past timeout). One
cron, the full stuck-job backstop. Reap failure is logged, never fails the settle.

## Query parameters

- `limit` integer
- `organization_id` string, nullable — Scope to one org

## Response `201`

Successful Response

- unknown

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.dev/geopera/apis/geopera-data-platform.md) · [All operations](https://skmtc.dev/geopera/apis/geopera-data-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/geopera/geopera-data-platform/revisions/cb0130b2a40a/schema)
