> For the complete documentation index, see [llms.txt](https://developer.topazlabs.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.topazlabs.com/reference/video/get-request-history/get-my-request-history.md).

# Get My Request History

This endpoint will return your processing history, newest first, up to 50 requests per page. Requests that have not been accepted yet (status `requested`) are omitted — fetch those individually with `GET /video/{requestId}`.

A page may contain fewer than 50 requests even when more are available, so keep following `nextCursor` until it comes back `null`.

```json
{"openapi":"3.0.3","info":{"title":"Video API","version":"1.0.0"},"tags":[{"name":"Get Request History","description":"This section allows you to get your video request history\n"}],"servers":[{"url":"https://api.topazlabs.com","description":"Production API base URL"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"VideoRequestRecord":{"type":"object","description":"Full record of a request, as returned by `GET /video/{requestId}` and for each entry of `GET /video/history`.\n","properties":{"id":{"type":"string","format":"uuid","description":"Unique request identifier"},"userId":{"type":"number"},"status":{"type":"string","enum":["requested","accepted","initializing","preprocessing","processing","postprocessing","complete","canceling","canceled","failed"]},"ts":{"type":"object","description":"Timestamp the request reached the state, if applicable, in milliseconds since UTC epoch","properties":{"requested":{"type":"number","description":"Request created"},"accepted":{"type":"number","description":"User has accepted the costs and began uploading the source video"},"initializing":{"type":"number","description":"System received the source video and began initializing resources"},"preprocessing":{"type":"number"},"processing":{"type":"number"},"postprocessing":{"type":"number"},"complete":{"type":"number"},"canceling":{"type":"number"},"canceled":{"type":"number"},"failed":{"type":"number"}}},"lastEventTs":{"type":"number","description":"Timestamp of the last event, in milliseconds since UTC epoch"},"adminId":{"type":"number","description":"Non-zero when the request was created on your behalf by a Topaz Labs administrator"},"version":{"type":"string","description":"Identifier of the client that created the request"},"processing":{"type":"object","description":"Bookkeeping from the processing pipeline. Populated only for requests handled by the generative pipeline; an empty object for every other request.\n","properties":{"topserving":{"type":"object","properties":{"lastUpdated":{"type":"number","description":"Timestamp of the last progress report received from the processing backend, in milliseconds since UTC epoch"}}}}},"filters":{"$ref":"#/components/schemas/InputFilters"},"output":{"$ref":"#/components/schemas/OutputInformationVideo"},"source":{"type":"object","description":"Source details. `frameCount`, `frameRate`, `resolution`, `size` and `duration` start as the values you supplied and are corrected once the system analyzes the file.\n","properties":{"container":{"type":"string"},"frameCount":{"type":"number"},"frameRate":{"type":"number"},"resolution":{"type":"object","properties":{"width":{"type":"integer"},"height":{"type":"integer"}}},"size":{"type":"integer","description":"In bytes"},"duration":{"type":"number","description":"In seconds, or the frame count for image sequence requests"},"startNumber":{"type":"integer","description":"Image sequence requests only"},"endNumber":{"type":"integer","description":"Image sequence requests only, exclusive"},"md5Hash":{"type":"string"},"download":{"$ref":"#/components/schemas/EnhancedDownloadSignedUrlResponse"}}},"destination":{"type":"object","properties":{"container":{"type":"string"},"frameCount":{"type":"number"},"frameRate":{"type":"number"},"duration":{"type":"number","description":"In seconds"},"size":{"type":"integer","description":"In bytes"},"download":{"$ref":"#/components/schemas/EnhancedDownloadSignedUrlResponse"}}},"estimates":{"$ref":"#/components/schemas/InitialEstimates"},"transactions":{"type":"array","items":{"type":"object","properties":{"operation":{"type":"string","enum":["reserve","commit","rollback"]},"amount":{"type":"number","description":"Amount involved in the transaction, in credits"}}}},"overrides":{"type":"object","properties":{"forceHighPerformance":{"type":"boolean","description":"Whether the request was placed on higher-performance processing hardware"},"shouldAddWatermark":{"type":"boolean","description":"Whether the enhanced output carries a Topaz Labs watermark. Absent or `false` unless the request was created through a client that watermarks its output."}}},"error":{"type":"object","description":"Present only if the request failed. The `errorCode` originates from the processing pipeline and may take values beyond the synchronous API error codes returned in HTTP error responses.\n","properties":{"message":{"type":"string"},"errorCode":{"type":"string","description":"Failure code from the processing pipeline.\n\nKnown values include:\n- INSUFFICIENT_CREDITS\n- CREDIT_DIFFERENCE\n- INVALID_INPUT\n- FORBIDDEN\n- UNAUTHORIZED\n- TIMEOUT_UPLOAD_SOURCE\n- TIMEOUT_QUEUE\n- TIMEOUT_PROCESSING\n- PROCESSING_FAILURE\n- SERVER_MAINTENANCE\n- SERVER_ERROR\n- HARDWARE_FAILURE\n- UNKNOWN\n"}}}}},"InputFilters":{"type":"array","description":"Array of UpscaleFilter or FrameInterpolationFilter objects","items":{"anyOf":[{"$ref":"#/components/schemas/UpscaleFilter"},{"$ref":"#/components/schemas/FrameInterpolationFilter"}]}},"UpscaleFilter":{"title":"Upscale Filter","type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Short code name for the AI model.\n\nNewer models may be accepted before they appear in this list — call `GET /video/status` for the authoritative set of currently supported models.\n","enum":["aaa-9","aaa-10","ahq-12","alq-13","alqs-2","amq-13","amqs-2","ddv-3","dtd-4","dtds-2","dtv-4","dtvs-2","gcg-5","ghq-5","hyp-1","iris-2","iris-3","nxf-1","nxl-1","nyx-3","pnat-1","prob-4","rhea-1","stab-1","thd-3","thf-4","thm-2"]},"videoType":{"type":"string","enum":["Progressive","Interlaced","ProgressiveInterlaced"],"description":"Frame/field type of the video"},"auto":{"type":"string","enum":["Auto","Manual","Relative"],"description":"Parameter mode of the selected model\n- Auto - parameter estimation is used with no customization\n- Relative - uses auto parameters with optional weights added\n- Manual - all parameters are manually set\n"},"fieldOrder":{"type":"string","enum":["TopFirst","BottomFirst","Auto"],"description":"Optional specification of field order for interlaced input videos"},"focusFixLevel":{"type":"string","enum":["None","Normal","Strong"],"description":"Downscales video input for stronger correction of blurred subjects"},"compression":{"type":"number","minimum":-1,"maximum":1,"description":"Adjust strength of compression recovery"},"details":{"type":"number","minimum":-1,"maximum":1,"description":"Amount of detail reconstruction"},"prenoise":{"type":"number","minimum":0,"maximum":0.1,"description":"Adds noise to input to reduce over-smoothing"},"noise":{"type":"number","minimum":-1,"maximum":1,"description":"Amount of noise reduction"},"halo":{"type":"number","minimum":-1,"maximum":1,"description":"Amount of halo reduction"},"preblur":{"type":"number","minimum":-1,"maximum":1,"description":"Adjust anti-aliasing and deblurring strength"},"blur":{"type":"number","minimum":-1,"maximum":1,"description":"Amount of sharpness applied"},"grain":{"type":"number","minimum":0,"maximum":0.1,"description":"Adds grain after AI model processing"},"grainSigma":{"type":"number","minimum":0,"maximum":1,"description":"Grain granularity"},"grainSize":{"type":"number","minimum":0,"maximum":5,"description":"Size of generated grain"},"grainType":{"type":"string","enum":["silver_rich","gaussian","grey"],"description":"Type of grain"},"recoverOriginalDetailValue":{"type":"number","minimum":0,"maximum":1,"description":"Reintroduce source details into the output video"},"transferFunction":{"type":"string","enum":["pq","hlg"],"description":"HDR transfer function. Applies to the Hyperion model (`hyp-1`)."},"adjustExposure":{"type":"number","minimum":0,"maximum":1,"description":"Exposure adjustment. Applies to the Hyperion model (`hyp-1`)."},"boostSaturation":{"type":"number","minimum":0,"maximum":1,"description":"Saturation boost. Applies to the Hyperion model (`hyp-1`)."},"highlightThreshold":{"type":"number","minimum":0.45,"maximum":0.85,"description":"Threshold above which pixels are treated as highlights. Applies to the Hyperion model (`hyp-1`)."},"rollingShutterCorrection":{"type":"boolean","description":"Correct rolling shutter distortion.\n\n__Required when the stabilization model (`stab-1`) is used.__ Omitting it returns a 400.\n"},"strength":{"type":"number","minimum":0,"maximum":16,"description":"Stabilization strength. Applies to the stabilization model (`stab-1`)."},"reduceMotionJitter":{"type":"integer","minimum":0,"maximum":5,"description":"Amount of motion jitter reduction. Applies to the stabilization model (`stab-1`)."},"fullFrame":{"type":"boolean","description":"Preserve the full frame rather than cropping to hide stabilization borders. Applies to the stabilization model (`stab-1`)."}}},"FrameInterpolationFilter":{"title":"Frame Interpolation Filter","type":"object","required":["model"],"properties":{"model":{"type":"string","description":"Short code name for the AI model\n","enum":["aion-1","apf-2","apo-8","chf-3","chr-2"]},"slowmo":{"type":"integer","minimum":1,"maximum":16,"description":"Slow motion factor applied to input video. For example, a value of 2 makes the output twice as slow and doubles the duration."},"fps":{"type":"number","minimum":15,"maximum":240,"description":"Output frame rate, does not increase duration"},"duplicate":{"type":"boolean","description":"Analyze input for duplicate frames and remove them"},"duplicateThreshold":{"type":"number","minimum":0.001,"maximum":0.1,"description":"Sensitivity of detection for duplicate frames"}}},"OutputInformationVideo":{"type":"object","description":"Desired output settings.\n\nSome values are adjusted server-side before processing:\n\n- `resolution` width and height are rounded up to the nearest multiple of 4.\n- `resolution` is forced to the source resolution when no upscale model is present in `filters`.\n- `frameRate` is forced to the source frame rate when no frame interpolation model is present in `filters`, and defaults to it when omitted.\n- With a frame interpolation model, `frameRate` and that filter's `fps` are both set to the greater of the two.\n- `container` is forced to `mov` when `videoEncoder` is `ProRes` and to `mp4` when it is `AV1` or `VP9`, and defaults to `mp4` otherwise.\n\nThe express endpoint supplies no source metadata, so nothing is inferred from the source there: only `resolution` is required, `frameRate` is required only when a frame interpolation filter omits its own `fps`, and the rest of the fields listed as required below take the defaults noted above.\n\n#### Supported encoders and profiles\n\nEvery accepted `videoEncoder` / `videoProfile` pair is listed below. `videoEncoder` defaults to `H265` and `videoProfile` to the default profile of the chosen encoder. Any other combination is rejected with `400` `INVALID_INPUT`, and the error message lists the profiles the encoder does support.\n\n| **videoEncoder** | **videoProfile**     | **container**       | **Max resolution** |\n|------------------|----------------------|---------------------|--------------------|\n| AV1              | `8-bit` _(default)_  | `mp4`               | 16384 x 8704       |\n| AV1              | `10-bit`             | `mp4`               | 16384 x 8704       |\n| H264             | `High` _(default)_   | `mp4`, `mov`, `mkv` | 4096 x 4096        |\n| H265             | `Main`               | `mp4`, `mov`, `mkv` | 8192 x 8192        |\n| H265             | `Main10` _(default)_ | `mp4`, `mov`, `mkv` | 8192 x 8192        |\n| ProRes           | `422 Proxy`          | `mov`               | 16386 x 16386      |\n| ProRes           | `422 LT`             | `mov`               | 16386 x 16386      |\n| ProRes           | `422 Std`            | `mov`               | 16386 x 16386      |\n| ProRes           | `422 HQ` _(default)_ | `mov`               | 16386 x 16386      |\n| VP9              | `Good` _(default)_   | `mp4`               | 8192 x 8192        |\n| VP9              | `Best`               | `mp4`               | 8192 x 8192        |\n\n- Encoder and profile values are matched case-insensitively.\n- **Max resolution** applies in either orientation, so AV1 also accepts 8704 x 16384. Exceeding it is rejected with `400` `INVALID_INPUT`.\n- **container** lists the containers you can receive for that encoder. ProRes, AV1, and VP9 replace whatever `container` you send with the single value shown; H264 and H265 honor your choice among the values shown.\n- `videoBitrate` is capped per encoder — **800 mbps** for AV1, **2000 mbps** for H264, H265, and VP9, and uncapped for ProRes. A higher value is rejected with `400` `INVALID_INPUT` — unless `dynamicCompressionLevel` is also set, in which case `videoBitrate` is discarded and the compression level is used instead.\n- `VP9` requires `videoBitrate`. Selecting it without one is rejected with `400` `INVALID_INPUT`.\n- `dynamicCompressionLevel` maps to a CQP value defined per encoder and profile, and applies to AV1, H264, and H265 only.\n- For ProRes and VP9 the storage portion of the cost estimate is derived from the source file size rather than a predicted output size.\n","required":["resolution","frameRate","audioTransfer"],"properties":{"resolution":{"type":"object","description":"Desired output resolution","required":["width","height"],"properties":{"width":{"type":"integer","description":"Width in pixels. The maximum depends on `videoEncoder` — see **Supported encoders and profiles** above."},"height":{"type":"integer","description":"Height in pixels. The maximum depends on `videoEncoder` — see **Supported encoders and profiles** above."}}},"frameRate":{"type":"number","description":"Frame rate"},"audioBitrate":{"type":"string","description":"Audio bitrate, if audioTransfer is Copy or Convert. Default values for the codec are used if not provided."},"audioCodec":{"type":"string","enum":["AAC","AC3","PCM"],"description":"__Required unless audioTransfer is None.__"},"audioTransfer":{"type":"string","enum":["Copy","Convert","None"]},"videoEncoder":{"type":"string","description":"Video encoder for the output. Defaults to `H265`. See **Supported encoders and profiles** above for the profiles, containers, and limits of each encoder.","enum":["AV1","H264","H265","ProRes","VP9"]},"videoBitrate":{"type":"string","description":"Constant bitrate, suffixed with \"k\" for kilobits or \"m\" for megabits per second. Mutually exclusive with `dynamicCompressionLevel`. __Required when `videoEncoder` is `VP9`.__ Each encoder caps this value — see **Supported encoders and profiles** above."},"dynamicCompressionLevel":{"type":"string","enum":["Low","Mid","High"],"description":"Automatic CQP selection. Mutually exclusive with `videoBitrate`. If neither is provided, this defaults to `High`. Applies to the `AV1`, `H264`, and `H265` encoders only."},"videoProfile":{"type":"string","description":"Codec profile, specific to the chosen `videoEncoder`. Defaults to that encoder's default profile (`Main10` for `H265`). See **Supported encoders and profiles** above for the accepted values."},"cropToFit":{"type":"boolean","description":"Center cropping to fit the output dimensions"},"container":{"type":"string","enum":["mp4","mov","mkv","avi","webm"],"description":"Desired output container. Defaults to `mp4`. Ignored and replaced with `mov` when `videoEncoder` is `ProRes`, and with `mp4` when it is `AV1` or `VP9`."}}},"EnhancedDownloadSignedUrlResponse":{"type":"object","description":"Signed download URL to the enhanced video file.\n\nThe URL is generated once and then reused for the lifetime of the request — subsequent calls return the same `url`, `expiresIn` and `expiresAt` rather than a freshly signed URL.\n","properties":{"url":{"type":"string"},"expiresIn":{"type":"integer","description":"TTL in milliseconds. Defaults to 7 days."},"expiresAt":{"type":"integer","description":"Time in milliseconds since UTC epoch"}}},"InitialEstimates":{"type":"object","description":"Initial cost and time estimate, recorded when the request is costed. Absent until then — express requests are costed after the source has been received and analyzed.\n","properties":{"cost":{"type":"array","description":"In credits","items":{"type":"integer"}},"time":{"type":"array","description":"In seconds","items":{"type":"integer"}}}}},"responses":{"BadRequest":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errorCode":{"type":"string","enum":["INSUFFICIENT_CREDITS","INVALID_INPUT","FORBIDDEN","UNAUTHORIZED","SERVER_MAINTENANCE","SERVER_ERROR","UNKNOWN"]},"errors":{"type":"array","description":"Present when the request failed schema validation. One entry per offending field.","items":{"type":"object","properties":{"type":{"type":"string"},"path":{"type":"string"},"location":{"type":"string"},"msg":{"type":"string"},"value":{}}}}}}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errorCode":{"type":"string","enum":["INSUFFICIENT_CREDITS","INVALID_INPUT","FORBIDDEN","UNAUTHORIZED","SERVER_MAINTENANCE","SERVER_ERROR","UNKNOWN"]}}}}}},"Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errorCode":{"type":"string","enum":["INSUFFICIENT_CREDITS","INVALID_INPUT","FORBIDDEN","UNAUTHORIZED","SERVER_MAINTENANCE","SERVER_ERROR","UNKNOWN"]}}}}}},"InternalServerError":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"errorCode":{"type":"string","enum":["INSUFFICIENT_CREDITS","INVALID_INPUT","FORBIDDEN","UNAUTHORIZED","SERVER_MAINTENANCE","SERVER_ERROR","UNKNOWN"]}}}}}}}},"paths":{"/video/history":{"get":{"tags":["Get Request History"],"summary":"Get My Request History","operationId":"GetHistory","description":"This endpoint will return your processing history, newest first, up to 50 requests per page. Requests that have not been accepted yet (status `requested`) are omitted — fetch those individually with `GET /video/{requestId}`.\n\nA page may contain fewer than 50 requests even when more are available, so keep following `nextCursor` until it comes back `null`.\n","parameters":[{"name":"cursor","in":"query","required":false,"description":"Base64url-encoded cursor for pagination. Use the `nextCursor` value from a previous response to fetch the next page.","schema":{"type":"string","format":"base64url"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"array","items":{"$ref":"#/components/schemas/VideoRequestRecord"}},"nextCursor":{"type":"string","format":"base64url","nullable":true,"description":"Cursor to pass as the `cursor` query parameter to fetch the next page. `null` when there are no more results."}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developer.topazlabs.com/reference/video/get-request-history/get-my-request-history.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
