Skip to content
GET /file/upload-request/{id}

The request’s status, limits, deadline and files, for the person who made it. `404` for anyone else and for an id that does not exist, the same answer, so the console page can say “this isn’t for this account” without confirming that a request exists.

Path Parameters

idstring
required·

Request id (fupr_…).

Response Body

add_files_untilstring · date-time

Ten minutes after creation, fixed. No new file can be reserved after it; the person can still send the files they added.

created_atstring · date-time
expires_atstring · date-time

The last moment the person can confirm (Send). Starts at add_files_until; it moves out when an upload finishes or an upload that was running ends without landing, never past 35 minutes after creation.

filesobject[]

At most limits.max_files.

file_idstring
filenamestring
mimestring,null
size_bytesinteger,null
statestring
Possible values:
uploadingstagedreadystalled
limitsobject
acceptarray,null

Allowed media types (image/*, application/pdf) and extensions (.csv); null means anything.

max_file_bytesinteger

The most one file may be. 95 MiB, or the request’s lower setting.

max_filesinteger

Files at most. 10.

max_total_bytesinteger

The most the whole request may hold. 250 MiB.

purposestring

What the files are for, as the asker said it.

request_idstring

Request id (fupr_…).

requesterstring

Who is asking: the connected app’s name, or “Elaichi assistant”.

statusstring

open: waiting for the person (files may be added, removed, confirmed). confirmed: they approved; the staged files are now theirs. expired: the deadline passed unconfirmed with nothing still uploading. A request whose upload STARTED before the deadline stays open until that upload finishes, and each finished file keeps it open for at least five more minutes, so someone mid-upload is never told it expired.

Possible values:
openconfirmedexpired
upload_page_urlstring

The console page. Carries no secret: only the signed-in person who made the request can use it.

curl -X GET 'https://api.elaichi.ai/file/upload-request/<id>' \
  -H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
  -H 'Content-Type: application/json'
const response = await fetch('https://api.elaichi.ai/file/upload-request/<id>', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
import os
import requests

url = "https://api.elaichi.ai/file/upload-request/<id>"
headers = {
    "Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
    "Content-Type": "application/json",
}

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