Create a file upload
Stages a resume (PDF or DOCX, up to 10 MB). The response carries a signed upload URL, only once: send the file to it with a PUT request and the returned headers, then pass the file's id as resume.fileId when creating a candidate or replacing a resume. The file is checked when it is attached. A file nobody attaches expires after 24 hours, and an organization can have 100 waiting at a time.
Required scope: candidates:write.
Errors
- 400:
invalid_content_type,invalid_idempotency_key,invalid_json,request_body_too_large,unknown_field - 401:
authentication_required,invalid_api_key - 403:
api_access_disabled,insufficient_scope - 409:
idempotency_key_reused,idempotency_request_in_progress,too_many_pending_files - 422:
invalid_parameter - 429:
rate_limit_exceeded - 500:
api_error - 503:
maintenance_mode,service_unavailable
ApiKeyAuthorizationBearer <probb_live_<id>_<secret>>Idempotency-Key?stringMakes retries safe. Repeating a request with the same key and body within 24 hours returns the original response with Idempotent-Replayed: true. The same key with a different body, or from a different API key, returns idempotency_key_reused.
1 <= length <= 255application/json- body
fileName*stringThe file name, ending in .pdf or .docx.
1 <= length <= 255mimeType*stringThe file's media type.
"application/pdf""application/vnd.openxmlformats-officedocument.wordprocessingml.document"sizeBytes*integerThe exact size of the file you will upload, up to 10 MB.
1 <= value <= 10485760Success.
application/json- response
object*stringid*stringThe file's ID. Pass it as resume.fileId.
fileName*stringThe file name you gave.
mimeType*stringThe file's media type.
sizeBytes*integerThe size you declared, in bytes.
-9007199254740991 <= value <= 9007199254740991status*stringawaiting_upload until the file is PUT, uploaded after, attached once a candidate uses it, rejected if it is not a valid resume, expired after 24 hours unattached.
"awaiting_upload""uploaded""attached""rejected""expired"expiresAt*stringAfter this the file can no longer be attached.
date-timecreatedAt*stringWhen the file was created.
date-timeupload*Returned only when the file is created.
# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.# Idempotency-Key is optional. Reuse the same key and body when retrying one logical write.curl --fail-with-body -X POST "$PROBB_URL/api/v1/files" \ -H "Authorization: Bearer $PROBB_API_KEY" \ -H "Idempotency-Key: $REQUEST_KEY" \ -H 'Content-Type: application/json' \ --data-binary '{ "fileName": "ada-lovelace.pdf", "mimeType": "application/pdf", "sizeBytes": 184320}'{ "object": "file", "id": "string", "fileName": "string", "mimeType": "string", "sizeBytes": -9007199254740991, "status": "awaiting_upload", "expiresAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "upload": { "url": "string", "method": "PUT", "headers": { "property1": "string", "property2": "string" }, "expiresAt": "2019-08-24T14:15:22Z" }}