---
title: "Internal Mint Content"
method: POST
path: "/v2/ownership/internal/mint/{content_id}"
tags: ["v2 - Ownership"]
---

# Internal Mint Content

`POST /v2/ownership/internal/mint/{content_id}`

## Request

- Base URL: `https://api.jubjubapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.jubjubapp.com/v2/ownership/internal/mint/{content_id}`
- Auth: HTTP bearer

Mint one piece. Called by Cloud Tasks from the ownership-mint queue,
never by users (OIDC-guarded, SEC-07, the same guard as every cron).

One task per publish, one task running at a time (the queue's limit):
see infrastructure/tasks/ownership_task_dispatcher.py. The work runs
inside this request, synchronously, to a budget short of Cloud Run's
600 s (MINT_REQUEST_BUDGET_SECONDS), so it has CPU for its whole
duration and Cloud Run keeps the instance up until it answers; nothing
is detached. The body decides and reports (ownership_service.
run_mint_task): 200 only when there is nothing left for a retry to do
(minted, halted for a person, no route home); 503 whenever the mint is
not finished (it died mid-way, it yielded at a checkpoint for budget,
or another attempt is live and must finish or go stale first), which
is what makes Cloud Tasks try again with backoff. The
recover-stuck-minting cron stays as the safety net behind both.

## Path parameters

- `content_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/jubjubapp/apis/jubjub-api.md) - [All operations](https://skmtc.dev/jubjubapp/apis/jubjub-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jubjubapp/apis/jubjub-api/revisions/353157b296f2?raw)
