Upload documents and media once, then refer to them by file_id in any request.
Create a file upload
POST/v1/files
Returns an upload_url to PUT the bytes to (send the upload_headers), then call POST /files/{id}/complete. Requires any write scope. Retrying with the same Idempotency-Key and body returns the same file.
Headers
Create a file upload: headers
Field
Details
Idempotency-Key
stringRequiredA unique key per new file.
EduMark-Version
enumAPI version. Defaults to the latest.One of 2026-10-21
Request body
Create a file upload: request body
Field
Details
filename
stringRequiredUp to 200 characters
mime_type
stringRequiredUp to 150 characters
size_bytes
integerRequired1 to 2,147,483,648
Responses
Status
Meaning
201
Successful Response
400
Request rejected. Inspect error.code and request_id; failed work is not billed.
401
Request rejected. Inspect error.code and request_id; failed work is not billed.
402
Request rejected. Inspect error.code and request_id; failed work is not billed.
403
Request rejected. Inspect error.code and request_id; failed work is not billed.
404
Request rejected. Inspect error.code and request_id; failed work is not billed.
409
Request rejected. Inspect error.code and request_id; failed work is not billed.
410
Request rejected. Inspect error.code and request_id; failed work is not billed.
413
Request rejected. Inspect error.code and request_id; failed work is not billed.
415
Request rejected. Inspect error.code and request_id; failed work is not billed.
422
Validation Error
429
Request rejected. Inspect error.code and request_id; failed work is not billed.
503
Request rejected. Inspect error.code and request_id; failed work is not billed.
Upload file bytes (when no presigned URL is used)
PUT/v1/files/{file_id}/content
Send the raw bytes as the request body, at most 20 MiB.
Parameters
Upload file bytes (when no presigned URL is used): parameters
Field
Details
file_id
stringRequired
Headers
Upload file bytes (when no presigned URL is used): headers
Field
Details
EduMark-Version
enumAPI version. Defaults to the latest.One of 2026-10-21
Responses
Status
Meaning
200
Successful Response
400
Request rejected. Inspect error.code and request_id; failed work is not billed.
401
Request rejected. Inspect error.code and request_id; failed work is not billed.
402
Request rejected. Inspect error.code and request_id; failed work is not billed.
403
Request rejected. Inspect error.code and request_id; failed work is not billed.
404
Request rejected. Inspect error.code and request_id; failed work is not billed.
409
Request rejected. Inspect error.code and request_id; failed work is not billed.
410
Request rejected. Inspect error.code and request_id; failed work is not billed.
413
Request rejected. Inspect error.code and request_id; failed work is not billed.
415
Request rejected. Inspect error.code and request_id; failed work is not billed.
422
Validation Error
429
Request rejected. Inspect error.code and request_id; failed work is not billed.
503
Request rejected. Inspect error.code and request_id; failed work is not billed.
Finish an upload
POST/v1/files/{file_id}/complete
Checks the size, the real file type and runs a malware scan. status is ready, scanning (poll GET /files/{id}) or rejected.
Parameters
Finish an upload: parameters
Field
Details
file_id
stringRequired
Headers
Finish an upload: headers
Field
Details
EduMark-Version
enumAPI version. Defaults to the latest.One of 2026-10-21
Responses
Status
Meaning
200
Successful Response
400
Request rejected. Inspect error.code and request_id; failed work is not billed.
401
Request rejected. Inspect error.code and request_id; failed work is not billed.
402
Request rejected. Inspect error.code and request_id; failed work is not billed.
403
Request rejected. Inspect error.code and request_id; failed work is not billed.
404
Request rejected. Inspect error.code and request_id; failed work is not billed.
409
Request rejected. Inspect error.code and request_id; failed work is not billed.
410
Request rejected. Inspect error.code and request_id; failed work is not billed.
413
Request rejected. Inspect error.code and request_id; failed work is not billed.
415
Request rejected. Inspect error.code and request_id; failed work is not billed.
422
Validation Error
429
Request rejected. Inspect error.code and request_id; failed work is not billed.
503
Request rejected. Inspect error.code and request_id; failed work is not billed.
Get a file
GET/v1/files/{file_id}
Parameters
Get a file: parameters
Field
Details
file_id
stringRequired
Headers
Get a file: headers
Field
Details
EduMark-Version
enumAPI version. Defaults to the latest.One of 2026-10-21
Responses
Status
Meaning
200
Successful Response
400
Request rejected. Inspect error.code and request_id; failed work is not billed.
401
Request rejected. Inspect error.code and request_id; failed work is not billed.
402
Request rejected. Inspect error.code and request_id; failed work is not billed.
403
Request rejected. Inspect error.code and request_id; failed work is not billed.
404
Request rejected. Inspect error.code and request_id; failed work is not billed.
409
Request rejected. Inspect error.code and request_id; failed work is not billed.
410
Request rejected. Inspect error.code and request_id; failed work is not billed.
413
Request rejected. Inspect error.code and request_id; failed work is not billed.
415
Request rejected. Inspect error.code and request_id; failed work is not billed.
422
Validation Error
429
Request rejected. Inspect error.code and request_id; failed work is not billed.
503
Request rejected. Inspect error.code and request_id; failed work is not billed.
Delete a file
DELETE/v1/files/{file_id}
Parameters
Delete a file: parameters
Field
Details
file_id
stringRequired
Headers
Delete a file: headers
Field
Details
EduMark-Version
enumAPI version. Defaults to the latest.One of 2026-10-21
Responses
Status
Meaning
200
Successful Response
400
Request rejected. Inspect error.code and request_id; failed work is not billed.
401
Request rejected. Inspect error.code and request_id; failed work is not billed.
402
Request rejected. Inspect error.code and request_id; failed work is not billed.
403
Request rejected. Inspect error.code and request_id; failed work is not billed.
404
Request rejected. Inspect error.code and request_id; failed work is not billed.
409
Request rejected. Inspect error.code and request_id; failed work is not billed.
410
Request rejected. Inspect error.code and request_id; failed work is not billed.
413
Request rejected. Inspect error.code and request_id; failed work is not billed.
415
Request rejected. Inspect error.code and request_id; failed work is not billed.
422
Validation Error
429
Request rejected. Inspect error.code and request_id; failed work is not billed.
503
Request rejected. Inspect error.code and request_id; failed work is not billed.