Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Skip to main content
GET
/
support
/
attachments
/
{id}
Support media
curl --request GET \
  --url https://xquik.com/api/v1/support/attachments/{id} \
  --header 'x-api-key: <api-key>'
import requests

url = "https://xquik.com/api/v1/support/attachments/{id}"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://xquik.com/api/v1/support/attachments/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://xquik.com/api/v1/support/attachments/{id}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
Support attachments stay private. Every download requires authentication and access to the parent ticket.
curl https://xquik.com/api/v1/support/attachments/att_a1b2c3d4e5f6a1b2c3d4e5f6 \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  --output attachment.bin
const attachmentId = "att_a1b2c3d4e5f6a1b2c3d4e5f6";
const response = await fetch(
  `https://xquik.com/api/v1/support/attachments/${attachmentId}`,
  { headers: { "x-api-key": "xq_YOUR_KEY_HERE" } },
);
const bytes = new Uint8Array(await response.arrayBuffer());
import requests

attachment_id = "att_a1b2c3d4e5f6a1b2c3d4e5f6"
response = requests.get(
    f"https://xquik.com/api/v1/support/attachments/{attachment_id}",
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
)
response.raise_for_status()
media_bytes = response.content

Path parameters

string
required
Attachment public ID from a ticket message or upload receipt.

Headers

string
required
Your API key. Session cookie authentication is also supported.
string
One standard byte range for video seeking or resumable downloads. Example: bytes=0-1048575.

Supported media

KindFormatsPer-file limit
ImageJPEG, PNG, GIF, WebP10 MB
VideoMP4, MOV, WebM25 MB
Each message accepts up to 4 files and 30 MB combined. Additional per-account upload limits protect service availability. A 429 response includes Retry-After. Xquik validates file signatures instead of trusting the declared content type. Rename-only format changes fail validation.

Agent workflow

  1. Send multipart fields named attachments.
  2. Read each returned receipt.
  3. Treat ready as downloadable.
  4. Treat failed as unavailable and ask the user to retry.
  5. Fetch the ticket before downloading media.
  6. Use the returned authenticated url unchanged.
  7. Reuse the submission Idempotency-Key when a network retry is required.
Ticket and reply retries return the original media receipts. This prevents duplicate tickets, messages, and stored files after a lost response. Never convert the relative url into a public link. It requires the same account authentication as the ticket.

Range example

Video downloads support one standard byte range. Use ranges for seeking or resumable playback.
curl https://xquik.com/api/v1/support/attachments/att_a1b2c3d4e5f6a1b2c3d4e5f6 \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  -H "Range: bytes=0-1048575" \
  --output video-part.bin

Response

  • 200 OK
  • 206 Partial Content
  • 401 Unauthenticated
  • 404 Not Found
  • 416 Range Not Satisfiable
  • 429 Rate Limited
Returns the complete image or video body with its validated content type.

Agent status map

StatusMeaningAgent action
200Complete mediaRead or save the body.
206Requested byte rangeContinue range requests when needed.
401Authentication failedRefresh authentication.
404Missing or unauthorizedDo not reveal which condition applied.
416Invalid rangeCorrect the Range header.
429Download limit reachedWait for Retry-After.
Create media with Create Ticket or Reply to Ticket. Read attachment metadata with Get Ticket.
Last modified on July 20, 2026
Morty Proxy This is a proxified and sanitized view of the page, visit original site.