DEV Community

Black Falcon Data
Black Falcon Data

Posted on Edited on

What the Bayt API returns — 68 fields, one real row

The Bayt API is best evaluated by looking at its schema. Below are all 68 fields, grouped by what they describe, followed by the filters that narrow a run before it costs anything.

Coverage includes INTERNATIONAL, the United Arab Emirates, Saudi Arabia, Egypt, KW, QA, BH, JO, LB, PK, India, OM, IQ and MA.

Here is what our own Bayt Actor returns, what it costs, and where its limits are.

Every field

Each record contains 68 fields, divided into these groups:

  • salary — salaryText, salaryCurrency, salaryMin, salaryMax, salaryPeriod, salaryUsdCurrency, salaryUsdMin, salaryUsdMax, salaryUsdPeriod
  • is — isRemote, isExternal, isAggregated, isHighlighted, isBranded, isAiTranslated, isRepost
  • company — company, companyUrl, companyLogoUrl, companySize
  • description — description, descriptionHtml, descriptionMarkdown
  • contact — contactName, contactEmail, contactPhone
  • extracted — extractedEmails, extractedPhones, extractedUrls
  • job — jobId, jobRole
  • employment — employmentType, employmentTypeNormalized
  • age — ageMin, ageMax
  • posted — postedDate, postedAt
  • repost — repostOfId, repostDetectedAt

Here are the first fields from one row in a real dataset:

{
 "jobId": "0b2e41dee2018d2b772f0560dab0ef015d1893b0ccd25ef0f0ee20c1d4c06804",
 "title": "Senior OutSystems Developer",
 "company": "Harjai Computers",
 "companyUrl": "https://www.bayt.com/company/company/view/?lang=en&company-url=harjai-computers-2252580",
 "companyLogoUrl": "https://secure.b8cdn.com/120x120/images/logo/80/2252580_logo_1754409431_n.png",
 "location": "Dubai, UAE",
 "city": "Dubai",
 "country": "UAE",
 "distanceKm": null,
 "salaryText": null,
 "salaryCurrency": null,
 "salaryMin": null,
 "salaryMax": null,
 "salaryPeriod": null
}
Enter fullscreen mode Exit fullscreen mode

Filters that narrow a run

The input supports 40 options: query, startUrls, country, location, employmentType, careerLevel, datePosted, sortBy, searchMinSalary, easyApplyOnly, searchRadiusKm, searchLatitude, searchLongitude, maxResults, includeDetails, descriptionMaxLength, compact, removeEmptyFields, incrementalMode, stateKey, and more. Because the filters run server-side, you pay for the records you requested instead of filtering them afterwards.

Coverage is INTERNATIONAL, the United Arab Emirates, Saudi Arabia, Egypt, KW, QA, BH, JO, LB, PK, India, OM, IQ and MA. The country option accepts INTERNATIONAL, AE, SA, EG, KW, QA, BH, JO, LB, PK, IN, OM, IQ, MA, with INTERNATIONAL as the default. Each run is limited to one market before any record is produced, so records outside that market are neither fetched nor billed.

What it costs

Pricing is per event, with no subscription:

  • $0.0005 per actor start
  • $0.00099 per result

Here is a measured run, not an estimate:

  • 30 records in 5.5 seconds
  • cost: $0.00052 — about $0.02 per 1,000 records

What people use it for

  • Benchmarking. Pricing and salary fields support comparisons across the entire set instead of requiring someone to eyeball a page of results.
  • Lead lists. Company-level fields help isolate the relevant segment before anyone opens a CRM.
  • Change detection. Timestamps make it possible to diff runs and act on new records instead of reading everything again.
  • Geographic analysis. Location fields allow market-by-market comparisons without requiring a separate data source.

The honest caveats

  • An empty field means the source showed nothing. Values are never inferred or filled in from another source.
  • The schema follows Bayt's markup. A redesign can add, rename or drop fields.
  • Anything Bayt places behind a login is absent from every field below, by design.

Questions people ask

Are all fields always populated?

No, and missing values are not guessed. When the source leaves a field blank, it comes back blank. An empty value means Bayt did not show one, not that extraction failed.

Which markets does it cover?

country accepts INTERNATIONAL, AE, SA, EG, KW, QA, BH, JO, LB, PK, IN, OM, IQ, MA and defaults to INTERNATIONAL. A single run covers one market. Covering several requires several runs, each billed only for what it returns.

Which filters are applied at the source?

employmentType, datePosted, searchMinSalary, maxResults run server-side. This affects cost as well as convenience: filtered-out records are never produced, so they are never billed.

How fresh is the data?

Every run reads Bayt when it runs, with no cached copy in between. Two runs a week apart provide two snapshots, enabling change detection.

Can I fetch only what changed?

Yes, through incrementalMode. Without it, running the Actor again returns the full set, leaving you to dedupe it on your side.

Is there an official Bayt export?

No. There is no public bulk export or API. The field list above therefore comes from parsing pages, not from a documented schema.

Try it

If these are the fields you need, the Bayt API endpoint we maintain produces them. New accounts receive $5 of free platform credit each month, enough to cover a real run of this size several times over.

Disclosure: we build and maintain this Actor, and the link above is an affiliate link.

Further reading


We also publish our write-up on the Bayt API on blackfalcondata.com — the request, the response, and what a run costs.

Top comments (0)