SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
tasks

Create a one-time upload link for a file of any accepted size.

Declare the file (name, exact size in bytes and hex SHA-256) and get a file_id plus a one-time upload_url. Then send the exact bytes with an HTTP PUT to upload_url, for example: curl -T "<file>" "<upload_url>". The link works for 15 minutes, only once, and only for a file with exactly this size and SHA-256. The PUT reply, or GET /files/{file_id}, says ready or why the file was refused. Then use the file_id with file_ids on POST /assignments/{id}/submit. Accepted: PNG, JPG, GIF or WebP images, PDF, Word, PowerPoint or Excel, MP4 or MOV video, CSV, TXT or Markdown, up to 100 MB. The real file type is read from its bytes, never from the name. Programs, SVG images, old .doc/.ppt/.xls files, Office files with macros, embedded objects or outside links, and PDFs with scripts are refused. A file is kept for 24 hours and can only be used by the same API key or connected app, with this service. Treat upload_url and upload_token as secrets.

POSThttps://app.softsolz.uk/api/v1/services/tasks/files/upload-links

Recent Requests

Log in to see full request history
TimeStatusUser Agent
Make a request to see history.

Headers

Authorizationstringrequired

Bearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.

Body Params

file_namestring

File name, e.g. deck.pptx.

size_bytesinteger

Exact size of the file in bytes.

sha256string

Hex SHA-256 of the file (64 characters).

Response

Response Body

file_idstringPass this id to the service to use the file.
statusstringready means the file passed every check and can be used.
file_namestringCleaned file name.
kindstring | nullWhat the file turned out to be, read from its bytes.
mimestring | nullMedia type read from the bytes.
size_bytesintegerSize in bytes.
sha256string | nullHex SHA-256 of the file.
reject_codestring | nullWhy the file was refused, when status is rejected.
expires_atstring | nullWhen the file (or, before upload, the link) stops working.
created_atstringWhen it was created.
upload_urlstringOne-time address to PUT the file bytes to. Secret; expires in 15 minutes.
upload_tokenstringThe secret part of upload_url.
upload_methodstringAlways PUT.
how_to_sendstringA ready-to-run command for sending the file.

Request

import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.tasks.createUploadLink({});
console.log(result);

Credentials

Sent as a Bearer token. Stored only in your browser.

Response · 201

{
"data": {
"file_id": "string",
"status": "string",
"file_name": "string",
"kind": "string",
"mime": "string",
"size_bytes": 0,
"sha256": "string",
"reject_code": "string",
"expires_at": "string",
"created_at": "string",
"upload_url": "string",
"upload_token": "string",
"upload_method": "string",
"how_to_send": "string"
}
}