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

# Crear un enlace para compartir un objeto Blob

> Crea un enlace a la página de un objeto Blob para compartirlo, con caducidad, límite de descargas y contraseña opcionales. Devuelve 201.

Crea un enlace para compartir un único objeto privado: una página del sitio web donde el destinatario descarga el archivo. Los enlaces caducan tras `expires_in` segundos (por defecto, 24 horas), pueden dejar de funcionar después de `max_downloads` descargas y pueden exigir contraseña en Enterprise-12 o superior. Un enlace para compartir no protege un objeto público, así que en ese caso `object_is_public` es `true`.

**Ámbito:** `blob:write`.

**object\_id** `string` *required*

El objeto que se va a compartir.

**expires\_in** `number`

Segundos hasta que el enlace deja de funcionar, de 60 a 2.592.000 (30 días). Por defecto, `86400` (24 horas).

**max\_downloads** `number`

Límite de descargas, de 1 a 10.000. Omítelo para no tener límite.

**password** `string`

Contraseña que debe escribir el destinatario, de 8 a 128 caracteres. Enterprise-12 o superior.

**workspace\_id** `string`

El ID del workspace, cuando el blob pertenece a un workspace. La llamada actúa sobre el blob del propietario del workspace y necesita el permiso de workspace `blob:read` (`blob:manage` en las rutas que modifican datos). Omítelo para actuar sobre tu propio blob.

### Ejemplo de petición

```bash theme={null}
curl -X POST "https://blob.vertracloud.app/v1/shares" \
  -H "Authorization: Bearer $VERTRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"object_id":"0b6f7c1e-3d2a-4f5b-9a8c-1d2e3f4a5b6c","expires_in":3600,"max_downloads":10}'
```

### Respuesta

**response** `object`

El enlace para compartir. Responde con `201`.

**propiedades**

**id** `string`

ID del enlace para compartir. Úsalo para revocarlo.

**object\_id** `string`

El objeto al que da acceso el enlace.

**url** `string`

URL de la página para compartir. Envíala a quien deba descargar el archivo.

**expires\_at** `string`

Momento en que el enlace deja de funcionar, como marca de tiempo ISO 8601.

**max\_downloads** `number | null`

Límite de descargas. `null` significa sin límite.

**remaining\_downloads** `number | null`

Descargas que quedan. `null` cuando no hay límite.

**has\_password** `boolean`

Indica si el enlace pide contraseña.

**object\_is\_public** `boolean`

`true` cuando el objeto es público. Un objeto público es accesible por su URL, así que el enlace no lo protege.

**created\_at** `string`

Fecha de creación en ISO 8601.

```json Response theme={null}
{
  "response": {
    "id": "3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7",
    "object_id": "0b6f7c1e-3d2a-4f5b-9a8c-1d2e3f4a5b6c",
    "url": "https://vertracloud.app/share/xK3mP9qLwT2vN8rY",
    "expires_at": "2026-10-15T12:00:00.000Z",
    "max_downloads": 10,
    "remaining_downloads": 10,
    "has_password": false,
    "object_is_public": false,
    "created_at": "2026-10-14T12:00:00.000Z"
  }
}
```

### Respuestas de error

**code** `string`

El código de error que indica el motivo del fallo. Valores posibles:

* `AUTH_TOKEN_MISSING` (`401`): No se envió la cabecera `Authorization`.
* `API_KEY_INVALID` (`401`): La clave de API no existe, fue revocada o su secreto no coincide.
* `API_KEY_SCOPE_DENIED` (`403`): La clave no tiene el ámbito que necesita esta ruta (`blob:read` o `blob:write`); `details.required` lo indica.
* `WORKSPACE_PERMISSION_DENIED` (`403`): Solo con `workspace_id`: no eres miembro o tu rol no tiene el permiso de blob.
* `WORKSPACE_NOT_FOUND` (`404`): Solo con `workspace_id`: no existe ningún workspace con ese ID o no eres miembro.
* `BLOB_NAMESPACE_SUSPENDED` (`403`): El almacenamiento blob de la cuenta está suspendido o su plan ha caducado. Las subidas y demás escrituras se rechazan desde el inicio del periodo de gracia de 72 horas.
* `VALIDATION_ERROR` (`400`): Un parámetro o campo del cuerpo no superó la validación. `details.path` indica el campo.
* `BLOB_OBJECT_NOT_FOUND` (`404`): El `object_id` no existe en esta cuenta.
* `PLAN_RESTRICTED_FEATURE` (`403`): Se envió `password` en un plan inferior a Enterprise-12.

```json Error Response (401) theme={null}
{
  "code": "AUTH_TOKEN_MISSING"
}
```

```json Error Response (403) theme={null}
{
  "code": "API_KEY_SCOPE_DENIED"
}
```

```json Error Response (404) theme={null}
{
  "code": "WORKSPACE_NOT_FOUND"
}
```

```json Error Response (400) theme={null}
{
  "code": "VALIDATION_ERROR"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.