An account type in JobFront is not one setting. It is three independent dimensions, and they compose freely — which is why two customers on the same named plan can behave completely differently through the API.
Product plan
Free · Entry · Premium · Enterprise. What you signed up for. Governs product features and workspace limits.
Rate tier
Default · Tier 1 · Tier 2 · Tier 3. How fast you can read it, and how much of each record you get back.
Billing mode
A monthly included allowance, plus credits you can top up. How you pay for it.
There is no data-access dimension
Every account reads the whole JobFront dataset. There used to be a fourth
dimension — a data_access mode of organization or global that scoped a job-board
customer to their subscribed sources — and it is gone, along with the data_access
key on GET /v4/me. Every account reads the same index, so there were no longer two
different things to separate. The only thing that narrows
what you can see is your own blocked sources and hidden jobs.
This page is about types, not prices
What each type costs is on jobfront.com/pricing ↗. Prices change; documentation goes stale. Nothing on this page quotes a number you would have to trust.
Find out what you are
One call answers every question below, and it is free on every plan and in every billing mode:
curl https://api.jobfront.com/v4/me \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"organization_id": "O_abc",
"rate_limit": 600,
"period_seconds": 60,
"remaining": 593,
"rate_limit_5h": 50000,
"period_seconds_5h": 18000,
"remaining_5h": 49821,
"billing_mode": "subscription",
"fields": {
"tier": "default",
"jobs": ["categories", "commitment", "created_at", "description", "..."],
"sources": ["brand_name", "id", "industry", "jobboard_format", "..."],
"filters": ["categories", "cbsa", "commitments", "industries", "..."],
"facets": ["categories", "cbsas", "commitments", "industries",
"jobboard_formats", "levels", "types"]
}
}
The four lists are alphabetical and complete for your tier — the "..." above is
this page eliding, not the API. Read them rather than hard-coding a list: a field moving
tier changes this response and nothing you would have to be told about.
| Field | Tells you |
|---|---|
rate_limit / rate_limit_5h |
Which dimension 2 you are on, as the two window sizes rather than a tier name. |
fields.tier |
Your data tier — min, default or max — and fields.jobs / sources / filters / facets list exactly what it includes. Ask here rather than inferring from absent keys. |
billing_mode |
credits if your plan is metered against an allowance and balance, subscription if it is unmetered. |
credit_balance |
Credits plans only. Omitted otherwise. |
Your product plan is deliberately not in this response: it governs the dashboard product, not the API. Read it in the dashboard under Settings → Billing.
Everything that is in this response — rate tier, field tier, billing mode, and any balance — is shown together in the dashboard under API → Billing (app.jobfront.com/api/billing ↗). The two are separate purchases: changing one never changes the other.
1. Product plan
The named plan on your organization, and the one the pricing page is organised around.
| Plan | Who it is for |
|---|---|
| Free | The default on a new organization. Explore the product and the data. |
| Entry | The first paid tier. |
| Premium | The mid tier. |
| Enterprise | Custom terms, agreed with a JobFront representative rather than checked out online. |
Your plan governs product features and workspace limits — how many active jobs and sources you can hold, how many collections and admin accounts, how many leads and subscribers, and which surfaces (data, hiring signals, job boards, sales agent) are switched on for you.
It is a separate axis from your API plan. An organization can be on a paid product plan with no API access at all, or hold API access as an add-on. Feature access is granted per capability rather than bundled rigidly into a plan name, so jobfront.com/pricing ↗ is the authority on what a given plan includes today.
2. Rate tier — how fast you can read it
REPORTED AS rate_limit AND rate_limit_5h
Four tiers, each carrying two independently enforced windows — a 1-minute burst floor and a 5-hour budget that is your real allowance.
| Tier | Per minute | Per 5 hours |
|---|---|---|
| Default (no API plan) | 60 | 5,000 |
| Tier 1 | 60 | 5,000 |
| Tier 2 | 600 | 50,000 |
| Tier 3 | 6,000 | 500,000 |
Limits are enforced per organization, shared across every token it holds, so minting more tokens does not buy more requests.
Full detail — the two windows, the X-RateLimit-* headers, and how to self-throttle —
is on rate limits & billing.
The same tier also sets your data tier
Your rate tier carries a data tier with it — how much of each record you get back. One plan dimension, not two to provision:
| Rate tier | Data tier | What it adds to a job |
|---|---|---|
| Tier 1 (and no API plan) | min |
Identity, status, posted location, remote flag, and the lifecycle timestamps. |
| Tier 2 | default |
Adds the description, level, commitment, work model, structured locations, categories and tags. |
| Tier 3 | max |
Adds compensation, the full post body, benefits and requirements, the granular workplace_details object, the whole AI enrichment set, and contacts. |
Tiers are cumulative — default includes everything in min, max everything in
default. GET /v4/me reports yours as fields.tier, with the exact field lists
alongside it.
Field by field, on the Job object:
| Tier | Job fields it adds |
|---|---|
min |
id · title · job_status · url_job · remote · onet_code · jobboard_format · source · created_at · created · first_seen_at · enriched_at · updated_at · verified_active_at · verified_inactive_at · source_job_id · description · post · salary · offers_visa_sponsorship · locations (the posted place — see below) |
default |
level · commitment · internship · work_model · industry · tags · tag · responsibilities · post_language · department · workplace_details (the headline — see below) |
max |
benefits · requirements · problems · technologies · categories · workplace_details (the full block) · locations (Census cells + coordinates) · contacts · visa_sponsorship · relocation_assistance · level_type · schedule_details · contract_details · experience_details · benefit_types · compensation_types · education_requirements · certification_requirements · security_requirements · authorization_requirements · language_requirements · other_requirements · brands · declared_details |
Two fields span tiers by child, exactly as they do in the collection exports — the two ladders are one:
| Field | min |
default |
max |
|---|---|---|---|
locations[] |
city, state, country, zip, street, text, place_name |
— | cbsa[], latitude, longitude |
workplace_details |
— | model, text, travel.required, travel.text |
the full block (arrangements, geo, cadence, timezone, confidence, travel detail) |
The max step is the large one — 24 fields — and most of it is the AI
enrichment layer: the structured requirement family, the
schedule / contract / experience blocks, and the visa and relocation signals.
The max filters
that read those fields come with it.
Jobs are what the tiers divide — companies are not
The table is about the job record. The company
record is not tiered: every plan
receives all 22 fields of it, wherever a company appears — company search,
the single-company lookups, the related routes, the source object embedded
on a job, and every autocomplete suggestion.
What is tiered on the company side is searching: ?industries=saas,
?hq_countries=… and the rest need a tier, and so do the matching facets on
/v4/sources/options. Reading a company is free of tier; narrowing millions
of them down to the ones you want is what a plan buys. The per-filter tiers
are on Search & filters.
Same three names as the exports, on purpose
File exports have always called their payload levels min /
default / max, and the API now uses the same three names for the same idea. So
"contacts are a max-tier field" is one sentence that is true of an API response and
an export file alike.
They remain separately configured: your data tier comes from your API plan, while
an export's level is set per collection in the dashboard. One organization can be on
the max API tier and still have a min export, or the reverse.
Fields outside your tier are omitted, not null — the response is self-describing
about what your plan includes, and a filter your tier cannot justify is rejected with an
explanation rather than silently ignored.
3. Billing mode — how you pay for it
REPORTED AS billing_mode
Your plan carries a monthly included allowance of credits, and you can top up with credit packs whenever you need more. One record returned costs one credit; discovery is free.
| Mode | What it means | Calls stop when |
|---|---|---|
credits |
Your plan is metered. The allowance refreshes each billing period; purchased credits sit on top and never expire. | The balance reaches 0 → 402 |
subscription default |
Unmetered — no allowance and no balance. This is what an account reads as before any API plan is applied. | You exceed a rate-limit window → 429 |
To start, talk to your JobFront representative — begin at jobfront.com/pricing ↗. Once you are on a plan, managing it (changing tier, buying credits, cancelling, invoices) is self-serve under API → Billing in the dashboard.
subscription — unmetered
What an account reads as before an API plan has been applied to it. Nothing counts
records and there is no balance to run out of; the only thing that can stop a call is a
rate limit. If this is your billing_mode, the credit sections below are informational.
credits — prepaid
You buy a balance in advance, and each returned record costs 1 credit. Discovery is free, which is the point: you can always find out how much something will cost before paying for it.
| Call | Cost |
|---|---|
| Search or list — per page, up to 25 records | 1 credit per record returned |
| A single job or company | 1 credit |
| Autocomplete | 1 credit flat — a type-ahead helper, not per suggestion |
A count (?count=true) |
Free |
GET /v4/me, GET /v4/usage, any …/options |
Free |
Two protections come with prepaid mode:
- A page is capped to what you can afford. 10 credits left and
limit=25returns 10 records, not a402. You are never served more than you can pay for. X-Credit-Balancerides on every response, andX-Credit-Lowappears before you hit zero, so you can top up without polling a separate endpoint.
At 0, metered calls return 402 — but GET /v4/me, GET /v4/usage,
the …/options facets and ?count=true on the list endpoints that support it keep
working, so you can always inspect your account and size your next pull before topping
up. (count is ignored on routes that do not return a list, and those calls are metered
as usual — so at 0 they return 402 too.)
Where a balance comes from
Two sources, and they behave differently at the end of a billing period:
| Included allowance | Purchased credits | |
|---|---|---|
| Arrives | With each billing period, when your subscription renews | When you buy a top-up pack |
| At period end | Resets — unused allowance does not roll over | Survives, until actually spent |
| Bought | Comes with your plan | Self-serve under API → Billing |
Your balance is the two combined, and spending draws down the allowance first — so a pack you bought is still there next period. API → Billing shows the split, along with the history of every grant and purchase.
MCP is billed identically to /v4 — a JSON-RPC
batch is charged per operation, each call is capped at 25 records, and initialize,
tools/list, ping and account_usage are free. Going through MCP is never cheaper or
more expensive than the equivalent HTTP calls.
Roles inside an account
Distinct from everything above: the people in your organization each have a role, and it is a permission, not a billing type.
| Role | Can |
|---|---|
| Admin | Manage billing, API tokens, collections, sources and the other accounts in the organization. |
| Member | Use the product within the organization's plan, without managing it. |
Roles do not affect API scope or quota. Any token, created by any admin, resolves to the same organization plan.
How they combine
Three dimensions, so an account is described by a combination rather than a single word:
| Shape | Product plan | Rate tier | Billing mode |
|---|---|---|---|
| Someone evaluating the product | Free | Default | subscription |
| A job board running on its own sources | Entry / Premium | Tier 1–2 | subscription |
| A data customer building on the full corpus | Enterprise | Tier 3 | subscription |
| A pay-as-you-go integration | any | Tier 1–2 | credits |
| A high-volume enterprise pipeline | Enterprise | Tier 3 | credits |
The shapes above are illustrative combinations, not a fixed catalog — the dimensions are set independently, so anything sensible is possible.
Changing your account type
Your API tier, billing mode and balance are shown in the dashboard under API → Billing (app.jobfront.com/api/billing ↗). Organization admins can change tier, top up credits, or cancel there; enterprise terms go through your JobFront representative. (Settings → Billing is a different screen — it manages your product plan, not your API access.) Three things are worth knowing:
- Changes propagate within about a minute — plans are cached briefly, so a new tier or mode is live across every one of your tokens within roughly 60 seconds, with no redeploy and no new credential.
- Rotating a token does not change any of this. All of an organization's tokens share one plan, one quota and one billing mode, so a new token inherits everything immediately. See authentication.
- Your API plan and your product plan are independent. Cancelling one leaves the other untouched, and you can hold either without the other.
For what each of these costs today, see jobfront.com/pricing ↗.
Related
- Authentication & tokens — how a token resolves to an organization and its plan.
- Rate limits & billing — the windows, the headers, the credit costs.
- Conventions — scoping, pagination and the response envelope.
- Error catalog —
402and429in full.