---
title: Interrogare un job di acquisizione
description: Polling di stato, eventCount, capturedCount e errors[] di un job di capture EPCIS. Usate il captureJobId restituito dal POST capture.
canonical: "https://www.tracepass.eu/it/docs/capture-job"
locale: it
source: "https://www.tracepass.eu/it/docs/capture-job"
---

# Interrogare un job di acquisizione

> Polling di stato, eventCount, capturedCount e errors[] di un job di capture EPCIS. Usate il captureJobId restituito dal POST capture.

```http
GET /api/v1/epcis/capture/{id}
```

Legge lo stato di un job di acquisizione EPCIS asincrono — il lato di lettura del modello di acquisizione EPCIS 2.0. `POST /api/v1/epcis/capture` restituisce `202 Accepted` con un `captureJobId`; passate quell'id qui per seguire il job fino a uno stato terminale.

La risposta porta `status`, l'`eventCount` inviato, il `capturedCount` memorizzato finora e un array `errors` per evento (`{index, message}`) per gli eventi che non hanno superato la convalida o la risoluzione degli EPC. `createdAt` e `finishedAt` racchiudono l'esecuzione — `finishedAt` è `null` mentre il job è ancora in corso. Conta come una lettura.

Gate del piano: EPCIS è incluso in ogni piano a pagamento oggi, quindi il percorso 403 è raggiungibile solo su spazi di lavoro il cui flag `epcisCaptureEnabled` è stato disabilitato tramite override per tenant. Un id di job sconosciuto o scaduto restituisce `404`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — una chiave API `tp_` (Developer → API Keys; più semplice, per server-to-server) oppure un access token OAuth 2.0 (Developer → OAuth Apps; per app autorizzate dall'utente, scoped e revocabili). La pagina Authentication contiene il flusso OAuth completo e l'elenco degli scopes. |
| `id` | path | string | yes | L'id del job di acquisizione restituito da `POST /api/v1/epcis/capture`. |

## Examples

```bash
curl -sS https://app.tracepass.eu/api/v1/epcis/capture/6650c4d5e6f7a8b9c0d1e2f3 \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"
```

```typescript
const res = await fetch(
  `https://app.tracepass.eu/api/v1/epcis/capture/${captureJobId}`,
  { headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` } },
);
if (res.status === 404) throw new Error("Capture job not found");
const job = await res.json();

if (job.status === "success") {
  console.log(`Captured ${job.capturedCount}/${job.eventCount} events`);
} else if (job.status === "failed") {
  console.error(job.errors); // [{ index, message }]
}
```

```python
import os, requests

res = requests.get(
    f"https://app.tracepass.eu/api/v1/epcis/capture/{capture_job_id}",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
)
res.raise_for_status()
job = res.json()

if job["status"] == "success":
    print(f"Captured {job['capturedCount']}/{job['eventCount']} events")
elif job["status"] == "failed":
    print(job["errors"])  # [{ "index": ..., "message": ... }]
```

## Responses

### 200 — OK

```json
{
  "captureJobId": "6650c4d5e6f7a8b9c0d1e2f3",
  "status": "success",
  "eventCount": 12,
  "capturedCount": 12,
  "errors": [],
  "createdAt": "2026-05-09T12:00:00.000Z",
  "finishedAt": "2026-05-09T12:00:03.420Z"
}
```

### 401 — Chiave API mancante

```json
{ "error": "Missing or invalid API key" }
```

### 403 — Add-on non attivo

```json
{ "error": "epcis_capture_not_available" }
```

### 404 — Non trovato

```json
{ "error": "Capture job not found" }
```

## Related

- [Acquisire eventi EPCIS](https://www.tracepass.eu/it/docs/capture-events.md)
