---
title: "Get async job status"
method: GET
path: "/api/v1/jobs/{job_id}"
tags: ["Backtests"]
---

# Get async job status

`GET /api/v1/jobs/{job_id}`

## Request

- Base URL: `https://tradingstrategies.work`
- URL: `https://tradingstrategies.work/api/v1/jobs/{job_id}`
- Auth: HTTP bearer

Polls an async job (e.g. created via POST /backtests/universe). Returns status, progress_pct, pairs_completed, and once completed: the full result. [Free tier]

## Path parameters

- `job_id` string, uuid, required

## Response `200`

Job status + (if completed) result.

## Other responses

- `400`: Invalid input — fehlt Pflichtfeld oder Wert außerhalb des erlaubten Bereichs.
- `401`: Unauthenticated — kein gültiger Bearer-Token im Authorization-Header.
- `403`: Tier-Insufficient — Endpoint braucht höheren API-Tier. Response enthält upgrade_url.
- `404`: Job not found (or not owned).
- `429`: Rate-Limit überschritten — Tier-Quota (hourly/daily) oder Per-Endpoint-Quota erreicht. Retry-After-Header gesetzt.
- `500`: Internal Error.
- `503`: Upstream-Failure — Datenquelle nicht erreichbar (Binance, EODHD, etc.).

---

[API](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api.md) · [All operations](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/revisions/f82e8d6eecd7?raw)
