# Get a feed's processing status `GET /catalog/v1/{catalog_id}/sources/feeds/{feed_id}/status` ## Request example ```bash curl --request GET \ --url 'https://api.eu1.luigisbox.ai/catalog/v1//sources/feeds//status' \ --header 'Authorization: Bearer ' ``` ## Path Parameters | Name | Type | Required | Description | Constraints | |---|---|---|---|---| | `catalog_id` | `string` | Yes | Catalog Id | — | | `feed_id` | `integer` | Yes | Feed Id | — | ## Responses | Status | Description | Content | |---|---|---| | `200` | Successful Response | application/json: object | | `401` | Missing or invalid credentials | application/json: object | | `403` | Authenticated but not permitted | application/json: object | | `404` | Resource not found | application/json: object | | `422` | Request validation failed | application/json: object | ### 200 Successful Response #### application/json Schema: `object` ##### Attributes | Attribute | Type | Required | Description | Constraints | |---|---|---|---|---| | `feed_id` | `integer` | Yes | Feed Id | — | | `latest_run` | `anyOf(object, null)` | Yes | — | — | | `latest_run.catalog_id` | `string` | Yes | Catalog Id | — | | `latest_run.created_at` | `string` | Yes | Created At | format: date-time | | `latest_run.error_message` | `anyOf(string, null)` | Yes | Error Message | — | | `latest_run.feed_id` | `integer` | Yes | Feed Id | — | | `latest_run.fingerprints` | `boolean` | Yes | Fingerprints | — | | `latest_run.finished_at` | `anyOf(string, null)` | Yes | Finished At | — | | `latest_run.force` | `boolean` | Yes | Force | — | | `latest_run.generation` | `anyOf(string, null)` | Yes | Generation | — | | `latest_run.id` | `integer` | Yes | Id | — | | `latest_run.items_no_identity` | `anyOf(integer, null)` | Yes | Items No Identity | — | | `latest_run.items_sent` | `anyOf(integer, null)` | Yes | Items Sent | — | | `latest_run.items_skipped` | `anyOf(integer, null)` | Yes | Items Skipped | — | | `latest_run.started_at` | `anyOf(string, null)` | Yes | Started At | — | | `latest_run.status` | `string` | Yes | Lifecycle status of a synchronization run. | allowed values: running, succeeded, failed, skipped | | `latest_run.status_reason` | `anyOf(string, null)` | Yes | Status Reason | — | | `latest_run.task_id` | `anyOf(string, null)` | Yes | Task Id | — | | `latest_run.trigger` | `string` | Yes | What started a synchronization run. | allowed values: schedule, manual | | `latest_run.triggered_by` | `anyOf(string, null)` | Yes | Triggered By | — | | `locked` | `boolean` | Yes | Locked | — | | `state` | `anyOf(object, null)` | Yes | — | — | | `state.concurrency_last_decision` | `anyOf(string, null)` | No | Concurrency Last Decision | — | | `state.detected_csv_delimiter` | `anyOf(string, null)` | No | Detected Csv Delimiter | — | | `state.detected_format` | `anyOf(string, null)` | No | Detected Format | — | | `state.detected_item_tag` | `anyOf(string, null)` | No | Detected Item Tag | — | | `state.detected_json_path` | `anyOf(string, null)` | No | Detected Json Path | — | | `state.detection_confident` | `anyOf(boolean, null)` | No | Detection Confident | — | | `state.etag` | `anyOf(string, null)` | No | Etag | — | | `state.last_modified` | `anyOf(string, null)` | No | Last Modified | — | | `state.last_run_at` | `anyOf(string, null)` | No | Last Run At | — | | `state.optimal_parser_concurrency` | `anyOf(integer, null)` | No | Optimal Parser Concurrency | — | | `state.optimal_send_concurrency` | `anyOf(integer, null)` | No | Optimal Send Concurrency | — | | `state.total_items` | `integer` | No | Total Items | — | ##### Response example ```json { "feed_id": 1, "latest_run": { "catalog_id": "example", "created_at": "2026-04-15T12:00:00Z", "error_message": "example", "feed_id": 1, "fingerprints": true, "finished_at": "2026-04-15T12:00:00Z", "force": true, "generation": "2489e9ad-2ee2-4e00-8ec9-32d5f69181c0", "id": 1, "items_no_identity": 1, "items_sent": 1, "items_skipped": 1, "started_at": "2026-04-15T12:00:00Z", "status": "running", "status_reason": "example", "task_id": "example", "trigger": "schedule", "triggered_by": "example" }, "locked": true, "state": { "concurrency_last_decision": "example", "detected_csv_delimiter": "example", "detected_format": "example", "detected_item_tag": "example", "detected_json_path": "example", "detection_confident": true, "etag": "example", "last_modified": "example", "last_run_at": "2026-04-15T12:00:00Z", "optimal_parser_concurrency": 1, "optimal_send_concurrency": 1, "total_items": 0 } } ``` ### 401 Missing or invalid credentials #### application/json Schema: `object` ##### Attributes | Attribute | Type | Required | Description | Constraints | |---|---|---|---|---| | `exception_details` | `object` | No | Machine-readable error context; empty object when there is nothing to add. | — | | `exception_details.validation_errors` | `anyOf(Array, null)` | No | Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value. | — | | `exception_details.validation_errors[].loc` | `Array` | Yes | Path to the offending value from the request root, e.g. `["body", "filters", 0, "operator"]`. | — | | `exception_details.validation_errors[].msg` | `string` | Yes | What is wrong with the value at `loc`. | — | | `exception_details.validation_errors[].type` | `string` | Yes | Stable machine code for the problem, e.g. `missing` or `string_too_short`. | — | | `exception_details.*` | `any` | No | Additional property. | — | | `reason` | `string` | Yes | Human-readable, actionable error message. | — | | `request_id` | `anyOf(string, null)` | No | Request correlation ID (matches the X-Request-Id response header). | — | ##### Response example ```json { "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example" } ``` ### 403 Authenticated but not permitted #### application/json Schema: `object` ##### Attributes | Attribute | Type | Required | Description | Constraints | |---|---|---|---|---| | `exception_details` | `object` | No | Machine-readable error context; empty object when there is nothing to add. | — | | `exception_details.validation_errors` | `anyOf(Array, null)` | No | Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value. | — | | `exception_details.validation_errors[].loc` | `Array` | Yes | Path to the offending value from the request root, e.g. `["body", "filters", 0, "operator"]`. | — | | `exception_details.validation_errors[].msg` | `string` | Yes | What is wrong with the value at `loc`. | — | | `exception_details.validation_errors[].type` | `string` | Yes | Stable machine code for the problem, e.g. `missing` or `string_too_short`. | — | | `exception_details.*` | `any` | No | Additional property. | — | | `reason` | `string` | Yes | Human-readable, actionable error message. | — | | `request_id` | `anyOf(string, null)` | No | Request correlation ID (matches the X-Request-Id response header). | — | ##### Response example ```json { "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example" } ``` ### 404 Resource not found #### application/json Schema: `object` ##### Attributes | Attribute | Type | Required | Description | Constraints | |---|---|---|---|---| | `exception_details` | `object` | No | Machine-readable error context; empty object when there is nothing to add. | — | | `exception_details.validation_errors` | `anyOf(Array, null)` | No | Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value. | — | | `exception_details.validation_errors[].loc` | `Array` | Yes | Path to the offending value from the request root, e.g. `["body", "filters", 0, "operator"]`. | — | | `exception_details.validation_errors[].msg` | `string` | Yes | What is wrong with the value at `loc`. | — | | `exception_details.validation_errors[].type` | `string` | Yes | Stable machine code for the problem, e.g. `missing` or `string_too_short`. | — | | `exception_details.*` | `any` | No | Additional property. | — | | `reason` | `string` | Yes | Human-readable, actionable error message. | — | | `request_id` | `anyOf(string, null)` | No | Request correlation ID (matches the X-Request-Id response header). | — | ##### Response example ```json { "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example" } ``` ### 422 Request validation failed #### application/json Schema: `object` ##### Attributes | Attribute | Type | Required | Description | Constraints | |---|---|---|---|---| | `exception_details` | `object` | No | Machine-readable error context; empty object when there is nothing to add. | — | | `exception_details.validation_errors` | `anyOf(Array, null)` | No | Every field-level problem found in the request, when validation is what failed. Absent when the rejection is not about a specific value. | — | | `exception_details.validation_errors[].loc` | `Array` | Yes | Path to the offending value from the request root, e.g. `["body", "filters", 0, "operator"]`. | — | | `exception_details.validation_errors[].msg` | `string` | Yes | What is wrong with the value at `loc`. | — | | `exception_details.validation_errors[].type` | `string` | Yes | Stable machine code for the problem, e.g. `missing` or `string_too_short`. | — | | `exception_details.*` | `any` | No | Additional property. | — | | `reason` | `string` | Yes | Human-readable, actionable error message. | — | | `request_id` | `anyOf(string, null)` | No | Request correlation ID (matches the X-Request-Id response header). | — | ##### Response example ```json { "exception_details": { "validation_errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ] }, "reason": "example", "request_id": "example" } ```