# Status

Check and manage the statuses of your image processing jobs. Whether you are handling a single job or managing a queue of bulk image processing tasks, the Status endpoints allow you to monitor the progress and completion of your tasks.

This is particularly useful for long-running jobs, where you can track progress and retrieve details such as percentage completion, estimated finish time, and current state (e.g., pending, processing, completed).

## Get All Statuses

> Retrieve the status of all image processing jobs.\
> \
> \*\*Pagination (Highly Recommended):\*\*\
> For better performance and to handle large numbers of statuses, pagination is highly recommended. Enable pagination by setting \`paginated=true\`. When pagination is enabled:\
> &#x20; \- Use the \`limit\` parameter to control the number of results per page (default: 50, maximum: 100)\
> &#x20; \- Use the \`cursor\` parameter to retrieve subsequent pages\
> &#x20; \- The response will include pagination metadata with \`next\_cursor\` and \`has\_next\_page\` fields\
> \
> \*\*Non-Paginated Response:\*\*\
> When \`paginated=false\` (default) or omitted, the endpoint returns all statuses \*\*up to 7 days old\*\* as a simple array. This may be slow or fail for accounts with many statuses.<br>

```json
{"openapi":"3.1.2","info":{"title":"Image API","version":"1.2.0"},"tags":[{"name":"Status","description":"Check and manage the statuses of your image processing jobs. Whether you are handling a single job or managing a queue of bulk image processing tasks, the Status endpoints allow you to monitor the progress and completion of your tasks.\n\nThis is particularly useful for long-running jobs, where you can track progress and retrieve details such as percentage completion, estimated finish time, and current state (e.g., pending, processing, completed).\n"}],"servers":[{"url":"https://api.topazlabs.com/image/v1","description":"Production Base URL"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Authentication via the Topaz generated key in the `X-API-Key` header.\n"}},"schemas":{"StatusResponse":{"type":"object","required":["process_id","filename","input_format","input_height","input_width","output_format","output_height","output_width","category","model_type","model","crop_to_fill","status","progress","eta","creation_time","modification_time","credits"],"properties":{"process_id":{"type":"string","description":"Unique identifier of the image processing job."},"source_id":{"type":"string","description":"Unique identifier of the source image."},"filename":{"type":"string","description":"Name of the file being processed."},"input_format":{"type":"string","description":"Format of the input file."},"input_height":{"type":"integer","description":"Height of the input image in pixels."},"input_width":{"type":"integer","description":"Width of the input image in pixels."},"output_format":{"type":"string","description":"Format of the output file."},"output_height":{"type":"integer","description":"Height of the output image in pixels."},"output_width":{"type":"integer","description":"Width of the output image in pixels."},"category":{"type":"string","description":"Category of model used for processing."},"model_type":{"type":"string","description":"Type of model used for processing."},"model":{"type":"string","description":"Model used for processing."},"crop_to_fill":{"type":"boolean","description":"Whether cropping to fill is enabled."},"options_json":{"type":"string","description":"Additional options in JSON format."},"status":{"type":"string","description":"Status of the job.","enum":["Pending","Processing","Completed","Cancelled","Failed"]},"progress":{"type":"integer","description":"Progress of the job as a percentage. Useful for displaying a progress bar or loading spinners etc.","minimum":0,"maximum":100},"eta":{"type":"integer","description":"Estimated time of arrival (ETA) for the process to complete in Unix time."},"creation_time":{"type":"integer","description":"Creation time of the job in Unix epoch format."},"modification_time":{"type":"integer","description":"Last modification time of the job in Unix epoch format."},"credits":{"type":"integer","description":"Credits (to be) consumed on image processing completion."}}},"PaginatedStatusesResponse":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","description":"Array of status responses for the current page.","items":{"$ref":"#/components/schemas/StatusResponse"}},"pagination":{"$ref":"#/components/schemas/PaginationMetadata"}}},"PaginationMetadata":{"type":"object","required":["has_next_page"],"properties":{"next_cursor":{"type":"string","description":"The cursor to use for retrieving the next page of results. Omitted if there are no more pages."},"has_next_page":{"type":"boolean","description":"Indicates whether there are more pages of results available."}}}},"responses":{"BadRequestProcess":{"description":"The request contains malformed data in the body, path, or query parameters.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Unauthorized":{"description":"Authentication is required and has failed or has not yet been provided.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Forbidden":{"description":"The API key doesn't have permissions to perform the request.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"TooManyRequests":{"description":"Too many requests hit the API too quickly. A backoff (e.g. exponential) is recommended for your requests.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"InternalServerError":{"description":"Unexpected error on our end.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}}}},"paths":{"/status":{"get":{"tags":["Status"],"summary":"Get All Statuses","operationId":"getAllStatuses","description":"Retrieve the status of all image processing jobs.\n\n**Pagination (Highly Recommended):**\nFor better performance and to handle large numbers of statuses, pagination is highly recommended. Enable pagination by setting `paginated=true`. When pagination is enabled:\n  - Use the `limit` parameter to control the number of results per page (default: 50, maximum: 100)\n  - Use the `cursor` parameter to retrieve subsequent pages\n  - The response will include pagination metadata with `next_cursor` and `has_next_page` fields\n\n**Non-Paginated Response:**\nWhen `paginated=false` (default) or omitted, the endpoint returns all statuses **up to 7 days old** as a simple array. This may be slow or fail for accounts with many statuses.\n","parameters":[{"name":"paginated","in":"query","required":false,"description":"Enable pagination for the response. Highly recommended for better performance.","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","required":false,"description":"Number of results per page when pagination is enabled. Ignored if `paginated=false`. Defaults to 50, maximum is 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","required":false,"description":"Cursor for pagination. Use the `next_cursor` value from the previous response to retrieve the next page. Ignored if `paginated=false`.","schema":{"type":"string"}}],"responses":{"200":{"description":"Statuses of all processes. The response format depends on whether pagination is enabled.","content":{"application/json":{"schema":{"oneOf":[{"type":"array","description":"Non-paginated response (when `paginated=false` or omitted)","items":{"$ref":"#/components/schemas/StatusResponse"}},{"$ref":"#/components/schemas/PaginatedStatusesResponse"}]}}}},"400":{"$ref":"#/components/responses/BadRequestProcess"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Delete All Statuses

> Remove all image processing job statuses. This operation can be used to delete the statuses of finished jobs, cleaning up the response of \`Get All Statuses\`, for example.<br>

```json
{"openapi":"3.1.2","info":{"title":"Image API","version":"1.2.0"},"tags":[{"name":"Status","description":"Check and manage the statuses of your image processing jobs. Whether you are handling a single job or managing a queue of bulk image processing tasks, the Status endpoints allow you to monitor the progress and completion of your tasks.\n\nThis is particularly useful for long-running jobs, where you can track progress and retrieve details such as percentage completion, estimated finish time, and current state (e.g., pending, processing, completed).\n"}],"servers":[{"url":"https://api.topazlabs.com/image/v1","description":"Production Base URL"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Authentication via the Topaz generated key in the `X-API-Key` header.\n"}},"responses":{"Unauthorized":{"description":"Authentication is required and has failed or has not yet been provided.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Forbidden":{"description":"The API key doesn't have permissions to perform the request.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"TooManyRequests":{"description":"Too many requests hit the API too quickly. A backoff (e.g. exponential) is recommended for your requests.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"InternalServerError":{"description":"Unexpected error on our end.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}}}},"paths":{"/status":{"delete":{"tags":["Status"],"summary":"Delete All Statuses","operationId":"deleteAllStatuses","description":"Remove all image processing job statuses. This operation can be used to delete the statuses of finished jobs, cleaning up the response of `Get All Statuses`, for example.\n","responses":{"200":{"description":"The number of statuses that were deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted_count":{"type":"integer","description":"The number of statuses that were deleted."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Get Status

> Use this endpoint to retrieve status information for your image processing jobs.<br>

```json
{"openapi":"3.1.2","info":{"title":"Image API","version":"1.2.0"},"tags":[{"name":"Status","description":"Check and manage the statuses of your image processing jobs. Whether you are handling a single job or managing a queue of bulk image processing tasks, the Status endpoints allow you to monitor the progress and completion of your tasks.\n\nThis is particularly useful for long-running jobs, where you can track progress and retrieve details such as percentage completion, estimated finish time, and current state (e.g., pending, processing, completed).\n"}],"servers":[{"url":"https://api.topazlabs.com/image/v1","description":"Production Base URL"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Authentication via the Topaz generated key in the `X-API-Key` header.\n"}},"schemas":{"StatusResponse":{"type":"object","required":["process_id","filename","input_format","input_height","input_width","output_format","output_height","output_width","category","model_type","model","crop_to_fill","status","progress","eta","creation_time","modification_time","credits"],"properties":{"process_id":{"type":"string","description":"Unique identifier of the image processing job."},"source_id":{"type":"string","description":"Unique identifier of the source image."},"filename":{"type":"string","description":"Name of the file being processed."},"input_format":{"type":"string","description":"Format of the input file."},"input_height":{"type":"integer","description":"Height of the input image in pixels."},"input_width":{"type":"integer","description":"Width of the input image in pixels."},"output_format":{"type":"string","description":"Format of the output file."},"output_height":{"type":"integer","description":"Height of the output image in pixels."},"output_width":{"type":"integer","description":"Width of the output image in pixels."},"category":{"type":"string","description":"Category of model used for processing."},"model_type":{"type":"string","description":"Type of model used for processing."},"model":{"type":"string","description":"Model used for processing."},"crop_to_fill":{"type":"boolean","description":"Whether cropping to fill is enabled."},"options_json":{"type":"string","description":"Additional options in JSON format."},"status":{"type":"string","description":"Status of the job.","enum":["Pending","Processing","Completed","Cancelled","Failed"]},"progress":{"type":"integer","description":"Progress of the job as a percentage. Useful for displaying a progress bar or loading spinners etc.","minimum":0,"maximum":100},"eta":{"type":"integer","description":"Estimated time of arrival (ETA) for the process to complete in Unix time."},"creation_time":{"type":"integer","description":"Creation time of the job in Unix epoch format."},"modification_time":{"type":"integer","description":"Last modification time of the job in Unix epoch format."},"credits":{"type":"integer","description":"Credits (to be) consumed on image processing completion."}}}},"responses":{"BadRequestProcess":{"description":"The request contains malformed data in the body, path, or query parameters.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Unauthorized":{"description":"Authentication is required and has failed or has not yet been provided.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Forbidden":{"description":"The API key doesn't have permissions to perform the request.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"NotFound":{"description":"The requested resource does not exist.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"TooManyRequests":{"description":"Too many requests hit the API too quickly. A backoff (e.g. exponential) is recommended for your requests.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"InternalServerError":{"description":"Unexpected error on our end.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}}}},"paths":{"/status/{process_id}":{"get":{"tags":["Status"],"summary":"Get Status","operationId":"getStatus","description":"Use this endpoint to retrieve status information for your image processing jobs.\n","parameters":[{"name":"process_id","in":"path","required":true,"description":"The UUID of the image processing job.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Status of the process","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}},"400":{"$ref":"#/components/responses/BadRequestProcess"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Delete Status

> Remove an image processing job status by its \`process\_id\`. This operation can be used to delete the statuses of finished jobs, cleaning up the response of \`GET Status\`, for example.<br>

```json
{"openapi":"3.1.2","info":{"title":"Image API","version":"1.2.0"},"tags":[{"name":"Status","description":"Check and manage the statuses of your image processing jobs. Whether you are handling a single job or managing a queue of bulk image processing tasks, the Status endpoints allow you to monitor the progress and completion of your tasks.\n\nThis is particularly useful for long-running jobs, where you can track progress and retrieve details such as percentage completion, estimated finish time, and current state (e.g., pending, processing, completed).\n"}],"servers":[{"url":"https://api.topazlabs.com/image/v1","description":"Production Base URL"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Authentication via the Topaz generated key in the `X-API-Key` header.\n"}},"responses":{"BadRequestProcess":{"description":"The request contains malformed data in the body, path, or query parameters.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Unauthorized":{"description":"Authentication is required and has failed or has not yet been provided.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Forbidden":{"description":"The API key doesn't have permissions to perform the request.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"NotFound":{"description":"The requested resource does not exist.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"Conflict":{"description":"The request conflicts with the current state.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"TooManyRequests":{"description":"Too many requests hit the API too quickly. A backoff (e.g. exponential) is recommended for your requests.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}},"InternalServerError":{"description":"Unexpected error on our end.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"code":{"type":"integer","description":"The HTTP status code."},"message":{"type":"string","description":"A human readable error message."}}}}}}}},"paths":{"/status/{process_id}":{"delete":{"tags":["Status"],"summary":"Delete Status","operationId":"deleteStatus","description":"Remove an image processing job status by its `process_id`. This operation can be used to delete the statuses of finished jobs, cleaning up the response of `GET Status`, for example.\n","parameters":[{"name":"process_id","in":"path","required":true,"description":"The UUID of the image processing job.","schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"The image processing job status was successfully deleted. No content returned."},"400":{"$ref":"#/components/responses/BadRequestProcess"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```
