--- title: "API and Pipelines" slug: "image-resizer-rotator-api-and-pipelines" updated: 2026-10-09T18:07:23Z published: 2026-10-09T18:07:23Z canonical: "help.quickbase.com/image-resizer-rotator-api-and-pipelines" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.quickbase.com/llms.txt > Use this file to discover all available pages before exploring further. # API and Pipelines Image Resizer/Rotator has two API endpoints for callers with no browser window, such as Quickbase Pipelines or your own integrations. They take the same parameters as a button and return the result as JSON. | **Action** | **Request** | | --- | --- | | Resize | *POST https://.../api/resize* | | Rotate | *POST https://.../api/rotate* | Replace *https://...* with your designated Image Resizer/Rotator server URL. ## Parameters Send the parameters in the query string, joined with *&*, exactly as in a button formula. See [Formula URL parameters](https://help.quickbase.com/quickbase-extensions/docs/en/image-resizer-rotator-formula-url-parameters). As an alternative, Base64-encode the whole parameter string and send it as a single *request* parameter: *?request=*. URL-encode the Base64 string before you add it to the URL: Base64 can contain *+*, */*, and *=*, and an unencoded *+* is read as a space, which corrupts the value. If the value can't be decoded, the response is *Invalid request parameter.* The 50-record limit for **query** applies to API requests. Use [batch processing](https://help.quickbase.com/quickbase-extensions/docs/en/image-resizer-rotator-batch-processing) for more. ## Authentication Always send a Quickbase user token in the *Authorization* header, in the same format as the Quickbase REST API: ``` Authorization: QB-USER-TOKEN ``` If your account uses Quickbase enhanced security, the token is required: it's used to confirm that its user has access to the record (or the records matched by **query**), and a request without it fails with *A temporary authorization token is required for this application. Please check your field settings or contact an App Administrator.* If your account doesn't use it, the header is ignored—so sending it every time is the safe choice. Use a token for a user with access to the table and file attachment fields. See [Enhanced security overview](https://help.quickbase.com/quickbase-extensions/docs/en/enhanced-security-overview). ## Response Both endpoints return HTTP 200 with a JSON body: ``` { "success": true, "successCount": 2, "errors": [] } ``` - **success**—*true* if no errors occurred. Use this to decide whether the request worked. - **successCount**—the number of images processed. - **errors**—error messages, plus any notes about images that were processed but didn't fully meet the request. A successful request can still include a note, for example: ``` { "success": true, "successCount": 1, "errors": ["Resized partially successfully - could not resize below 25600 bytes."] } ``` Log or show anything in **errors**, even when **success** is *true*. Messages are the same as in the button window—see [Image Resizer/Rotator messages and troubleshooting](https://help.quickbase.com/quickbase-extensions/docs/en/image-resizer-rotator-messages). Unexpected problems return *We ran into an error processing your request. Please contact support if this continues to happen.* ## Examples Resize the image in field 6 to 800 × 600 pixels: ``` curl -X POST "https://.../api/resize?clientid=Q#&appid=&dbid=&recid=42&clist=6&width=800&height=600" \  -H "Authorization: QB-USER-TOKEN " ``` Make the image 250 KB or smaller: ``` curl -X POST "https://.../api/resize?clientid=Q#&appid=&dbid=
&recid=42&clist=6&rsfilesize=250&fsunit=KB" \  -H "Authorization: QB-USER-TOKEN " ``` Rotate the image 90 degrees: ``` curl -X POST "https://.../api/rotate?clientid=Q#&appid=&dbid=
&recid=42&clist=6&rotateval=90" \  -H "Authorization: QB-USER-TOKEN " ``` ## Use in Quickbase Pipelines 1. Add a step that sends an HTTP request—for example, the **Webhooks** channel's **Make Request** step. 2. Set the method to **POST** and the URL to the endpoint with your parameters. Use data from earlier steps for values such as the Record ID#—for example, *recid={{a.id}}*. 3. Add the header *Authorization* with the value *QB-USER-TOKEN* followed by your user token. 4. Optionally, add a condition after the request that checks the response's **success** value.