---
title: "Reap Stale Jobs"
method: POST
path: "/v2/admin/billing/jobs/reap"
tags: ["admin-billing"]
---

# Reap Stale Jobs

`POST /v2/admin/billing/jobs/reap`

## Request

- Base URL: `https://api.geopera.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.geopera.com/v2/admin/billing/jobs/reap`
- Auth: HTTP bearer

Projection of processing.jobs.reap alone (cron — service/cron Bearer token).

Runs every 30 minutes (infra/scheduler.tf processing_reap) so a job whose
worker died is failed-or-retried — and its credit reservation released —
within the hour rather than at the nightly settlement pass.

## Query parameters

- `limit` integer
- `dry_run` boolean

## Response `201`

Successful Response

- unknown

## Other responses

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

## Changes

- **2026-09-06** `078cbbb15634`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/geopera/apis/geopera-data-platform/changes/v2/admin/billing/jobs/reap/post.md)

---

[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.dev/geopera/apis/geopera-data-platform/revisions/d5adab332a7a?raw)
