Skip to content
Hoody.com

The Storage Management endpoints let you list, retrieve, and delete files saved by the curl service. Each saved file is reachable through three symlinked directory layouts — by-job/{uuid}/filename, by-domain/{domain}/{uuid}, and by-date/{YYYY-MM-DD}/{uuid} — so you can locate content using whichever organization best fits your workflow. Use these endpoints to audit downloaded files, find content by source domain or capture date, or clean up old data.

All endpoints on this page are served by the per-container curl instance at https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com.

Returns a paginated list of files saved to storage from HTTP requests. Items are listed under their primary by-job path; the same physical files can also be reached via by-domain and by-date symlinks.

NameInTypeRequiredDescription
pagequeryintegerNo1-based page number
limitqueryintegerNoItems per page (the handler returns all items when omitted)
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/storage?page=1&limit=50" \
-H "Authorization: Bearer <token>"
{
"items": [
{
"created_at": "2024-01-15T10:30:00Z",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"path": "by-job/550e8400-e29b-41d4-a716-446655440000/report.pdf",
"size": 245678,
"url": "https://api.example.com/report.pdf"
},
{
"created_at": "2024-01-15T11:45:00Z",
"job_id": "660e8400-e29b-41d4-a716-446655440111",
"path": "by-domain/api.example.com/660e8400-e29b-41d4-a716-446655440111",
"size": 89120,
"url": "https://api.example.com/data.json"
}
],
"meta": {
"limit": 50,
"page": 1,
"total": 2
}
}

Each item always exposes path, size, and created_at. When present, job_id is the UUID parsed from the storage path and url is the original source URL. meta carries pagination state.

Retrieves the contents of a previously saved file. The response body is returned with Content-Type: application/octet-stream, making it suitable for downloads of any file type.

Supported path shapes include:

  • by-job/{uuid}/filename (primary)
  • by-domain/{domain}/{uuid}
  • by-date/{YYYY-MM-DD}/{uuid}
NameInTypeRequiredDescription
pathpathstringYesRelative path to file in storage (supports nested paths)
Terminal window
curl -X GET "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/storage/by-job/550e8400-e29b-41d4-a716-446655440000/report.pdf" \
-H "Authorization: Bearer <token>" \
--output report.pdf

The response body is the raw file bytes returned with Content-Type: application/octet-stream. The spec does not define a JSON body for this status.

Permanently deletes a file from storage. This action cannot be undone — the file is removed from all three storage layouts (by-job, by-domain, by-date) at once.

NameInTypeRequiredDescription
pathpathstringYesRelative path to file in storage
Terminal window
curl -X DELETE "https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/storage/by-job/550e8400-e29b-41d4-a716-446655440000/report.pdf" \
-H "Authorization: Bearer <token>"

The delete succeeded. The file is no longer reachable through any of the three storage layouts (by-job, by-domain, by-date). The spec does not define a JSON body for this status.