GuidesData Types & Formats

Data Types & Formats

Resource IDs

All resources use ULID (Universally Unique Lexicographically Sortable Identifier) with a type prefix:

ResourcePrefixExample
Organizationorg_org_01HVAXYZ123456789
API Keykey_key_01HVAXYZ123456789
Jobjob_job_01HVAXYZ123456789
Submissionsub_sub_01HVAXYZ123456789
Filefile_file_01HVAXYZ123456789
AI Scorescore_score_01HVAXYZ123456789
Webhook Endpointwh_wh_01HVAXYZ123456789
Webhook Eventevt_evt_01HVAXYZ123456789
Audit Eventaev_aev_01HVAXYZ123456789
Payoutpayout_payout_01HVAXYZ123456789
Requestreq_req_01HVAXYZ123456789

ULIDs are time-ordered — IDs created later are lexicographically greater. This means you can sort by ID to get chronological order.

Timestamps

All timestamps are ISO 8601 in UTC:

2026-03-20T19:03:27.971Z
  • Always UTC (indicated by the Z suffix)
  • Millisecond precision
  • Returned as strings in JSON responses

Prices & Currency

All monetary values are in US cents (integers):

FieldTypeExampleMeaning
price_per_file_centsinteger50$0.50 per file
credits_centsinteger500$5.00 balance
total_cost_centsinteger5000$50.00 total
amount_centsinteger1320$13.20 payout

Never use floats for prices. Cents-as-integers prevents floating-point rounding errors.

To display as dollars: (cents / 100).toFixed(2)"$13.20"

Status Enums

Job Status

StatusDescription
openAccepting submissions from workers
in_progressHas active submissions being scored
completedAll requested files collected and approved
cancelledCancelled by buyer, unused credits refunded

Submission Status

StatusDescription
pending_scoreUploaded, awaiting AI scoring
approvedScored 3+ stars, file delivered to buyer
rejectedScored 1 star, no retry available
retry_pendingScored 2-3 stars on first attempt, retry available

Webhook Event Types

EventFires When
submission.approvedA submission scores 3+ stars
submission.rejectedA submission scores below threshold
job.completedAll requested files collected
job.cancelledJob cancelled by buyer

File Formats

Accepted MIME types for uploads:

CategoryMIME TypesMax Size
Imageimage/png, image/jpeg, image/webp, image/gif25 MB
Audioaudio/mpeg, audio/wav, audio/mp4100 MB
Videovideo/mp4, video/quicktime500 MB

Boolean Values

All booleans are JSON true / false (not strings, not integers).

Null Values

Optional fields that have no value are returned as null (not omitted from the response):

{
  "id": "job_01HV...",
  "deadline": null,
  "metadata": null
}