Skip to content

Get a presigned S3 upload URL for large files

Request

Returns a presigned S3 PUT URL for uploading ZIP files that exceed the 10 MB direct upload limit. The URL is valid for 10 minutes. After uploading to S3, pass the returned s3_key to POST /v2/fraudscanner.

Flow:

  1. POST /v2/getUploadUrl → receive upload_url + s3_key
  2. PUT your ZIP to upload_url (with Content-Type: application/zip)
  3. POST /v2/fraudscanner?s3_key=<s3_key> → receive analysis results

The uploaded file is automatically deleted after processing (or after 24h if not consumed).

Security
apiKeyAuth
Headers
x-api-keystringrequired

The API key for authentication.

caseNumberstringrequired

The case number this upload belongs to; same value you will send to POST /v2/fraudscanner.

POST
/v2/getUploadUrl
curl -i -X POST \
  https://api.vaarhaft.com/v2/getUploadUrl \
  -H 'caseNumber: string' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

Presigned URL generated successfully.

Bodyapplication/json
upload_urlstring, (uri)required

Presigned S3 PUT URL. Upload your ZIP file here using an HTTP PUT request with Content-Type application/zip. Expires after 10 minutes.

Example:"https://uploads.vaarhaft.com/uploads/company123/a1b2c3d4.zip?..."
s3_keystringrequired

The S3 key to pass as query parameter to POST /v2/fraudscanner after uploading.

Example:"uploads/company123/a1b2c3d4.zip"
Response
{ "upload_url": "https://uploads.vaarhaft.com/uploads/company123/a1b2c3d4.zip?...", "s3_key": "uploads/company123/a1b2c3d4.zip" }