Moxlade
Checking your account

Filter reference

One filter object is used in three places: search_jobs takes it as filters, save_search takes it as prefilter, and check_prefilter validates one and tells you how many postings it would catch. This page is that language. There are 48 fields.

A field name that is not in the catalogue is refused, not quietly ignored — so a typo fails loudly rather than widening your filter. Read Conventions before writing your first one: three of them are not guessable and all three produce a refusal you cannot explain from the field alone.

The five value shapes

Each field has a type, and the type decides the envelope its value takes. Text is the odd one out and worth reading twice: the operator IS the key, and there is no operator field at all.

text

the operator is the key; give one or more of them

Operators: all_words, any_words, exact_phrase, none_words

{
  "<field>": {
    "all_words": "python scraper",
    "none_words": "wordpress"
  }
}

numeric

{"operator": <one of operators>, "value1": "<number as string>"} — "between" also needs value2

Operators: between, equals, greater_than, greater_than_or_equals, less_than, less_than_or_equals

{
  "<field>": {
    "operator": "greater_than",
    "value1": "1000"
  }
}

select

{"operator": <one of operators>, "values": [<string>, …]}

Operators: equals, equals_all, not_equals, not_equals_any

{
  "<field>": {
    "operator": "equals",
    "values": [
      "<one of options>"
    ]
  }
}

boolean

{"value": "Yes"|"No"} — no operator key

{
  "<field>": {
    "value": "Yes"
  }
}

date

{"operator": <one of operators>, "date1": "YYYY-MM-DD"} — "between" also needs date2

Operators: after, before, between, equals

{
  "<field>": {
    "operator": "after",
    "date1": "2026-01-01"
  }
}

Conventions

Three rules that no single field entry could tell you, and that produce refusals which make no sense until you know them.

Combining filters

Several fields in one object are ANDed. There is no OR across fields; to widen, loosen a clause rather than adding another. Within a text field, any_words is the OR.

{
  "_combined|title|description|skills": {
    "exact_phrase": "React Native"
  },
  "buyer_payment_verified": {
    "value": "Yes"
  },
  "total_spent": {
    "operator": "greater_than",
    "value1": "5000"
  }
}

Run it through check_prefilter before saving. It returns matched, and a filter that is valid and matches nothing looks exactly like a quiet market — a saved search built on one fires forever without telling you it was the filter. It also returns warnings when a clause cannot match at all, such as a numeric comparison outside the range the corpus holds.

Every field

Grouped by how often they are actually useful, which the catalogue itself ranks. min and max are the values currently present in the corpus, not limits — a filter outside them is valid and matches nothing.

Most used (17)

fieldtypeaccepts
avg_hourly_rate
Client Avg Hourly Rate
numericAverage hourly rate this client typically pays freelancers. Based on their historical hiring patterns.
buyer_feedback_count
Buyer Feedback Count
numericobserved 0 to 22131
buyer_payment_verified
Buyer Payment Verified
booleanBoolean flag indicating whether the client has verified their payment method on Upwork.
buyer_score
Buyer Score
numericobserved 0 to 5
category_name
Category Name
selectAccounting & Consulting · Admin Support · Customer Service · Data Science & Analytics · Design & Creative · Engineering & Architecture · IT & Networking · Legal (+4 more)
experience_level
Experience Level
selectEntry_level · Expert · Intermediate
hire_rate
Client Hire Rate
numericPercentage of freelancers the client has hired from total applications. Higher rates indicate clients who actively hire rather than just browse.
hires
Hires
numericobserved 0 to 39261
named_buyer
Only named buyers
booleanKeep only jobs whose client we've identified by name (resolved via BuyerLookup) — established, researchable clients, not anonymous/brand-new ones.
price
Budget/Price - Fixed-price
numericobserved 0 to 1000000
price_max
Hourly Rate - Max
numericobserved 3 to 999
price_min
Hourly Rate - Min
numericobserved 3 to 500
skills
Skills
textComma-separated list of required skills and technologies for the job as specified by the client.
subcategory_name
Subcategory Name
select3D Modeling & CAD · AI & Machine Learning · AI Apps & Integration · Accounting & Bookkeeping · Art & Illustration · Audio & Music Production · Blockchain, NFT & Cryptocurrency · Branding & Logo Design (+57 more)
title
Job Title
textThe job posting title as written by the client. Contains the main description of what work needs to be done.
total_spent
Total Spent
numericobserved 0.08 to 22117578.16

Situational (17)

fieldtypeaccepts
active_hires
Active Hires
numericobserved 0 to 4835
ai_explicit_mention_of_agency
Explicit Mention Of Agency
selectAgencies Welcome · No Agencies · No Mention
client_location
Client Location
selectUnited States · United Kingdom · India · USA · Australia · Canada · Germany · Pakistan (+313 more)
contract_to_hire
Contract To Hire
booleanWhether the job has potential to convert from contract to permanent employment.
description
Description
textFull job description text as written by the client. Contains detailed requirements, expectations, and project scope.
engagement_label
Engagement Label
select1 to 3 months · 3 to 6 months · Less than 1 month · More than 6 months
engagement_weeks
Engagement Weeks
select3 · 9 · 18 · 52
industry
Industry
selectAerospace · Agriculture & Forestry · Art & Design · Automotive · Aviation · Education · Energy & Utilities · Engineering & Architecture (+20 more)
job_is_premium
Job Is Premium
booleanBoolean flag indicating whether job is premium applies to this job.
jobs_posted
Jobs Posted
numericobserved 0 to 39636
open_jobs
Open Jobs
numericobserved 0 to 415
price_type
Price Type
selectFixed-price · Hourly
qual_portfolio_required
Qual Portfolio Required
booleanWhether the client requires a portfolio or work samples to apply.
qual_pref_english
Qual Pref English
selectANY · CONVERSATIONAL · FLUENT · NATIVE
qual_rising_talent
Qual Rising Talent
booleanWhether the job is open to Upwork Rising Talent (newer freelancers with potential).
qual_type
Qual Type
selectAGENCY · ANY · INDEPENDENT
total_hours
Total Hours
numericobserved 0 to 11820879

Advanced (14)

fieldtypeaccepts
buyer_contract_date
Buyer Contract Date
dateDate when the client first registered their account on Upwork. Indicates how long the client has been active on the platform.
category_id
Category ID
select531770282580668416 · 531770282580668417 · 531770282580668418 · 531770282580668419 · 531770282580668420 · 531770282580668421 · 531770282580668422 · 531770282580668423 (+4 more)
client_invites_sent
Client Invites Sent
numericobserved 0 to 349
client_positions_to_hire
Client Positions To Hire
numericobserved 0 to 99
client_total_applicants
Applicants (this job)
numericobserved 0 to 67
client_total_hired
Hired (this job)
numericobserved 0 to 41
client_total_invited
Invited (this job)
numericobserved 0 to 52
client_unanswered_invites
Unanswered invites
numericobserved 0 to 302
company_size
Company Size
select0 · 1 · 10 · 100 · 1000 · 10000 · 2 · 500 (+1 more)
hourly_budget_type
Hourly Budget Type
selectDEFAULT · MANUAL · NOT_PROVIDED
qual_min_hours
Qual Min Hours
select0
qual_min_hours_week
Qual Min Hours Week
select0 · 10 · 30 · 40
qual_min_success_score
Qual Min Success Score
select0 · 80 · 90
subcategory_id
Subcategory ID
select531770282584862724 · 531770282584862725 · 531770282584862726 · 531770282584862728 · 531770282584862730 · 531770282584862733 · 531770282589057024 · 531770282589057025 (+56 more)

↑ top