Skip to content
getgeolens.com

Request Presigned Upload

POST
/ingest/upload/presigned
curl --request POST \
--url https://example.com/api/ingest/upload/presigned \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "filename": "example", "file_size": 1, "content_type": "application/octet-stream" }'

Request presigned URL(s) for direct-to-S3 file upload.

Media type application/json
PresignedUploadRequest
object
filename
required
Filename

Original filename being uploaded. Used to determine the file extension and content disposition.

string
>= 1 characters <= 255 characters
file_size
required
File Size

Total file size in bytes. Used to decide between single-part and multipart upload.

integer
>= 1
content_type
Content Type

MIME type to associate with the uploaded object.

string
default: application/octet-stream <= 255 characters

Successful Response

Media type application/json
PresignedUploadResponse
object
job_id
required
Job Id

Identifier of the ingestion job created for this upload.

string format: uuid
urls
required
Urls

One presigned PUT URL per part. Single-element list for single-part uploads.

Array<string>
s3_key
required
S3 Key

Object key in the S3 bucket where the file will be stored.

string
upload_id
Any of:
string
part_size
Any of:
integer
Example generated
{
"job_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"urls": [
"example"
],
"s3_key": "example",
"upload_id": "example",
"part_size": 1
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}