Skip to content

Mark a direct-to-storage upload complete for validation/scanning.

POST
/v1/uploads/{id}/complete
curl --request POST \
--url https://api.share2.us/v1/uploads/example/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "size_bytes": 1, "sha256": "example", "multipart_etags": [ "example" ] }'
id
required
string
Media typeapplication/json
object
size_bytes
required
integer format: int64
>= 1
sha256
required
string
/^[a-f0-9]{64}$/
multipart_etags
Array<string>
Examplegenerated
{
"size_bytes": 1,
"sha256": "example",
"multipart_etags": [
"example"
]
}

Upload accepted for validation.

Media typeapplication/json
object
id
required
string
public_id
required
string
>= 12 characters
url
required
string format: uri
filename
required
string
size_bytes
required
integer format: int64
content_class
string
Allowed values: text image document archive binary
state
required
string
Allowed values: created uploading uploaded scanning ready expired revoked blocked deleted
download_count
integer
max_downloads
integer
>= 1
password_protected
boolean
recipient_restricted

What the share ACTUALLY is. On the create response this is what lets a client that asked for visibility: private tell it got one: an older server ignores the field and returns a 201 with a PUBLIC link, so an ABSENT value must be read as “unknown”, never as false.

boolean
encrypted
boolean
scan_status

Malware scan outcome. skipped means the file was not scanned (scanning off, encrypted, or scanner unavailable) and is served with a visible warning; only a real dirty verdict blocks a share (ADR-013).

string
Allowed values: pending clean blocked skipped
expires_at
required
string format: date-time
created_at
required
string format: date-time
Example
{
"content_class": "text",
"state": "created",
"scan_status": "pending"
}

Standard error envelope.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
request_id
required
string
Example
{
"error": {
"code": "quota_exceeded"
}
}