API documentation

Upload files from apps, bots, scripts or ShareX. The v1 API uses JSON responses and a small set of predictable endpoints.

Authentication

Upload-only keys can upload. Full-access API keys are required to list files, delete files and read account data. Send the key with each request using the Authorization header.

HTTP header
Authorization: Bearer YOUR_KEY

POST /api/v1/upload: upload-only or full-access key
GET/DELETE/account data: full-access key
Keep keys private. Regenerating or revoking a key invalidates the old key immediately.

Upload file

POST/api/v1/upload

Send a multipart request with a field named file. Each supported file can be up to 200 MB. Your plan storage quota and upload rate limits also apply.

Example
curl -X POST https://archvd.xyz/api/v1/upload \
  -H "Authorization: Bearer YOUR_UPLOAD_KEY" \
  -F "[email protected]"
201 Created
{
  "ok": true,
  "code": "a1B2c3D4.png",
  "url": "https://yourname.wasbuiltto.win/a1B2c3D4.png",
  "size": 48213,
  "mime": "image/png",
  "deleteUrl": "https://archvd.xyz/api/v1/delete/a1B2c3D4.png",
  "request_id": "req_..."
}

Delete file

POST/api/v1/delete/{code}

Deletes a file owned by the authenticated account. A full-access key is required and released storage becomes available immediately.

Example
curl -X POST https://archvd.xyz/api/v1/delete/a1B2c3D4.png \
  -H "Authorization: Bearer YOUR_API_KEY"

List files

GET/api/v1/images?limit=50

Returns the newest stored uploads. Despite the legacy endpoint name, the list can contain supported non-image files too. limit accepts values from 1 to 100. A full-access key is required.

Example
curl "https://archvd.xyz/api/v1/images?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Account and storage

GET/api/v1/me
{
  "ok": true,
  "user": {"username": "yourname", "active": true},
  "quota": {
    "limit_bytes": 2147483648,
    "used_bytes": 48213,
    "remaining_bytes": 2147435435
  },
  "request_id": "req_..."
}

ShareX

API & ShareX can generate a ready-made .sxcu file containing an upload-only key. Import it into ShareX and uploaded screenshots/files will return the ARCHVD public URL directly.

archvd.sxcu
{
  "Name": "ARCHVD — upload and share",
  "DestinationType": "ImageUploader, FileUploader",
  "RequestMethod": "POST",
  "RequestURL": "https://archvd.xyz/api/v1/upload",
  "Headers": {"Authorization": "Bearer YOUR_UPLOAD_KEY"},
  "Body": "MultipartFormData",
  "FileFormName": "file",
  "URL": "{json:url}",
  "ErrorMessage": "{json:message} ({json:request_id})"
}

Error responses

400Invalid request or missing file
401Missing or invalid API key
404File not found
405Wrong HTTP method
413File exceeds 200 MB
415File type is not allowed
422Upload failed validation/security checks
429Rate limit reached
503Required security scan unavailable
507Storage quota reached
{
  "ok": false,
  "code": "invalid_api_key",
  "message": "The API key is invalid or lacks the required permission.",
  "request_id": "req_..."
}