---
title: "Issue a freshly-signed download URL for a SUCCEEDED batch"
method: POST
path: "/batch/{batchId}/regenerate-url"
tags: ["Batch"]
---

# Issue a freshly-signed download URL for a SUCCEEDED batch

`POST /batch/{batchId}/regenerate-url`

## Request

- Base URL: `https://api3.mountain.com`
- URL: `https://api3.mountain.com/batch/{batchId}/regenerate-url`
- Auth: none declared
- TypeScript: <https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api/docs/batch/:batchId/regenerate-url/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns a new signed URL for the result file without re-executing the query. Effect is equivalent to re-calling GET /batch/{batchId}, but the response carries only the URL fields — no other batch metadata.

## Path parameters

- `batchId` integer, required

## Query parameters

- `key` string, required

## Response `200`

Fresh signed URL issued

- RegenerateUrlResponse
  - `downloadUrl` string
  - `downloadExpiresAt` string

## Other responses

- `400`: Batch is queued or processing
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Batch not found
- `409`: Batch is in a terminal non-downloadable state
- `410`: Result is permanently unavailable
- `413`: Payload Too Large — the query exceeds server memory limits. Use the asynchronous /batch endpoint for large requests.
- `500`: Internal Server Error
- `503`: Signing subsystem temporarily unavailable
- `504`: Gateway Timeout — the query exceeded the synchronous request time limit.

---

[API](https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api.md) - [All operations](https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api/revisions/826e4445c45e?raw)
