---
title: "Sign cloud storage URLs"
slug: "sign-cloud-storage-urls"
updated: 2026-04-02T17:37:08Z
published: 2026-04-02T17:37:27Z
canonical: "support.tulip.co/sign-cloud-storage-urls"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.tulip.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Sign cloud storage URLs

Post/signURLs

Sign cloud storage URLs. Signed URLs are valid for three hours

Requires the `urls:sign` API key scope.

SecurityHTTPType basic

Access to the Tulip API requires the use of [HTTP Basic Authentication](https://datatracker.ietf.org/doc/html/rfc7617) using the credentials of an active [Tulip API Token](https://support.tulip.co/docs/set-up-a-tulip-api). All requests require the `Authorization` HTTP header with the `Basic` scheme to provide API credentials unless otherwise noted.

API tokens can be configured with a set of *scopes* which determine what parts of the API that specific token has access to. Security best practices dictate that API credentials be given the minimum set of capabilities required to fulfill their intended purpose. For example, an API token created for use in an integration that is only designed to use the Tables API should probably only be given the `tables:read` and `tables:write` scopes. In this way you can minimize risk in the event that API credentials are compromised. API endpoints will document what API token scopes are required to access that endpoint in their descriptions. If a request is made to an endpoint with an API token which does not have the required scopes, the response will be an authorization error.

Body parameters

An object containing an array of URLs to sign

<select class='api-response-data' aria-label='Media type'><option value='aa24c37c-ea70-4be0-b5b0-8d162df80a3e'>application/json</option>
</select>object  Example{
  "urls": [
    "https://s3.amazonaws.com/tulip/logo.png",
    "https://tulip.co"
  ]
}urls Array of string   Required

The URLs to sign

string    

Responses200

An object containing an array of the signed URLs. URLs are returned in the order in which they were received. URLs that could not be signed are returned as `null`.

<select class='api-response-data' aria-label='Media type'><option value='64b53b09-8363-4c5f-a43d-2233b0688422'>application/json</option>
</select>object  Example{
  "signedURLs": [
    "https://s3.amazonaws.com/tulip/logo.png?X-Amz-Signed-Stuff=signedstuff",
    null
  ]
}signedURLs Array of string   

The signed URLs. `null` values indicate that the URL could not be signed.

string   | null  

400

The request was malformed. This could mean that headers, query parameters, or the request body was unable to be parsed or had unexpected values.

<select class='api-response-data' aria-label='Media type'><option value='208cbd81-d064-4efe-aed7-8c4f92382f2f'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

401

The request was made unauthorized. HTTP Basic Authorization using a Tulip API Key is required for use of the API.

<select class='api-response-data' aria-label='Media type'><option value='4ad3c0ae-d622-4088-858c-91b48a6e6da2'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

403

The provided authentication info was rejected. The response will provide additional details.

<select class='api-response-data' aria-label='Media type'><option value='e99b8ab3-1c3f-4b9c-8758-6c3fb345e4d3'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring    

500

The server encountered an unexpected error.

<select class='api-response-data' aria-label='Media type'><option value='0ef5d403-f19e-4e4e-ad9c-137c66f6f7fc'>application/json</option>
</select>object  errorCodestring    
errorUniqueIDstring    Pattern^[a-zA-Z0-9+/]+$Exampleaq21mSKC1rbO87TjC/4Hz2EJHd/v+jxf7MtC315vo0Y
detailsstring
