The import’s files
const url = 'https://api.sloose.com/orgs/org_9f3c/imports/imp_4d1a/files';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.sloose.com/orgs/org_9f3c/imports/imp_4d1a/files \ --header 'Authorization: Bearer <token>'The files this import holds that are an upload in progress or stored (not removed, not being deleted), with the facts recorded of each: state, size, type read from the content, SHA-256 and whether storage verified it. No names: the server stores none. A run’s file index is made from this and the sheet, and an import opened again finds the reservations it left. Paged, never cut: ?limit= (at most 1,000, default 1,000) and ?after= the next of the page before, which is null on the last. A file’s dueAt is when the sweep may take it: for an upload in progress it moves on with every link signed, so one that has passed is an upload nobody is sending.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The organisation id the session was issued for. A token for one organisation can never read another.
Example
org_9f3cThe organisation id the session was issued for. A token for one organisation can never read another.
The import id.
Example
imp_4d1aThe import id.
Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”The files.
object
object
The stored size in bytes, read from storage at commit; null until then.
Read from the file’s first bytes by the server, never from its name or the browser’s claim.
The content’s SHA-256 (base64), as the browser said it. See sha256Verified.
True where storage checked it (a single signed PUT); false where it is the browser’s claim (a multipart file, whose parts are each verified by their MD5).
When the sweep may take the file. For an upload in progress it moves on with every link signed: one that has passed is an upload nobody is sending.
When the file was reserved (ISO 8601, UTC): a reservation never finished is told by how old it is.
Example
{ "files": [ { "state": "reserved" } ]}No bearer, or one that no longer resolves: a session that is unknown or expired (code: AUTH_REQUIRED), or an API token that was revoked or expired (TOKEN_REVOKED, TOKEN_EXPIRED), whose organisation is gone (ORG_NOT_FOUND) or whose member or user row is (MEMBERSHIP_GONE).
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The bearer’s role is too low (code: ROLE_REQUIRED), or it was issued for a different organisation; the organisation has been closed (code: ORG_CLOSED, either kind of bearer); the person is banned (code: BANNED, a session); or it is a session that is signed in but in no organisation (code: NO_ORG): one that never joined one, or whose person was taken out of the one it was in, or left it. Signing in again changes nothing for NO_ORG; choosing or making an organisation does.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}No such import.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The restore switch is on (code: MAINTENANCE): every route but /health and /robots.txt is refused before anything is read, except the operator’s own POST /staff/people/{id}/delete with the ADMIN_TOKEN. Sloose is down for maintenance. Please try again in a few minutes.
object
Example
{ "code": "MAINTENANCE"}Headers
Section titled “Headers”Seconds until asking again is worth it (300 while the switch is on).