---
title: "Presign an attachment download"
method: GET
path: "/tickets/{id}/attachments/{file_id}/url"
tags: ["tickets"]
---

# Presign an attachment download

`GET /tickets/{id}/attachments/{file_id}/url`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/tickets/{id}/attachments/{file_id}/url`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Mint a short-lived presigned URL for a file attached to this ticket. The file must sit on one of the ticket's messages; internal-note attachments are staff-only. The URL is a bearer link — fetch it promptly and re-request after expiry.

## Path parameters

- `id` string, required
- `file_id` string, required

## Response `200`

OK

- InternalDeliveryHttpHandlerTicketAttachmentURLResponse
  - `expires_at` string
  - `success` boolean
  - `url` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
