[ docs ]Guide
Making a request
One URL per platform, one body shape for every op. The op picks the operation; the rest of the request is that op's fields.
The call
POST https://api.zomler.com/api/v1/platforms/{platform}
{
"request": { "op": "<op>", ... },
"estimateOnly": false,
"maxCredits": null
}request.opnames the operation. Each platform page lists its ops; the fields that follow are that op's own.estimateOnly: truequotes the exact cost and coverage and spends nothing. The quote runs the same plan the real call runs.maxCreditsis a hard budget for the call. When it cannot cover everything asked, the least valuable items are left out and named incoveragewith the reasonbudget_exhausted.
Field names are camelCase on the wire (postedWithin, maxCredits). Enum values are lower snake_case codes (rating_high, full_time).
Subjects
The things an op is about are its subjects — a list of one to ten — or a single subjectfor ops that go deep on one thing. What a subject is depends on the platform: a username, a product id, a URL, a subreddit. The op's description says which, and pasted URLs are accepted wherever they make sense.
Handles come from evidence — a page you saw, a URL you were given, a prior answer — never from guessing. A handle typed from a person's name bills real credits and can return a different person.
The shared vocabulary
Fields below mean the same thing, take the same type and the same values on every platform that has them. A platform keeps its own filters too — those are marked ◆ on its page. Anything else you find there is a platform's own.
| Field | Meaning | Values |
|---|---|---|
subjects / subject | what the op is about — handles, ids or URLs; the op says which | list of 1-10 strings, or one string |
limit | rows this call may bill | integer, per-op ceiling |
query | keyword search text | string |
hashtag | a hashtag, with or without # | string |
sort | ordering | relevance newest oldest top hot rising rating_high rating_low most_reviewed most_commented helpful threaded price_low price_high distance — each op lists its subset |
postedWithin | relative recency | 1h 1d 3d 7d 15d 30d 3m 6m 1y any — each op lists its subset |
since / until | absolute date bounds | YYYY-MM-DD |
stay | the nights a price is for | object with checkIn, checkOut (YYYY-MM-DD) plus what the platform prices on |
location / locations | free-text place(s) | string / list of strings |
country | ISO 3166-1 alpha-2, upper | US IN GB … |
language | BCP-47 | en en-US … |
currency | ISO 4217 | USD INR … |
priceMin / priceMax, salaryMin / salaryMax, hourlyMin / hourlyMax, budgetMin / budgetMax | money bounds in the platform's unit | integers |
minRating / minStars | quality floor on the platform's scale | number |
direction | which side of a follow graph | followers following |
workplace | where the job is done | remote hybrid onsite (+ platform extras) |
employmentType | contract kind | full_time part_time contract internship temporary |
include | facets fetched alongside a card in the same call | object (include.posts, include.videos) |
metric / days | a stored history series | per-platform metric names; 1-730 days |
Machine-readable schema
GET https://api.zomler.com/api/v1/platforms/{platform}/schema returns the JSON Schema of request for that platform — the same union these pages are generated from — with no key required. Use it to validate requests before sending, or to generate types.
Ready to send one? Pick a platform under Platforms.