Skip to main content

Public Jobs API — Get your job feed with an access token

S
Written by Sagar Modhvaniya

Fetch your curated job feed and filter options programmatically from your own website or app.

Getting your access token

  1. Log in to your artha.link account and open API from the sidebar (or More → API on mobile).

  2. Click Create access token, give it a name, and optionally set an expiration.

  3. Copy the token immediately — for security reasons it is shown only once. You can have up to 5 active tokens, and you can revoke or delete a token at any time from the same page.

Base URL

https://api.artha.link/api/v1

Authentication

Include your access token on every request using either header:

Authorization: Bearer ak_live_YOUR_TOKEN

or

X-API-Key: ak_live_YOUR_TOKEN

Keep your token secret. Use it from your server only — never in browser or mobile app code. If a token is exposed, revoke it and create a new one.

How results are personalized

Your saved job feed preferences from My Link (keywords, companies, experience levels, countries, work modes, salary, and more) are applied automatically as defaults on every request. Any query parameter you pass explicitly overrides the matching saved preference.

Endpoints

GET /jobs

Returns your personalized job feed.

Query parameters (all optional):

Parameter

Type

Description

limit

Integer

Number of jobs to return (Default: 10, Max: 100).

offset

Integer

Pagination offset (Default: 0).

location

String

Country code (ISO format e.g., US, IN, GB). Disables geo-boost relaxation.

state

String

Region/State name (e.g., California, Gujarat). Disables geo-boost relaxation.

city

String

City name (e.g., San Francisco, Ahmedabad). Disables geo-boost relaxation.

q

String

Free-text search terms (e.g., React, Sales).

categories

String

Comma-separated list of categories (e.g. software-development,design).

job_type

String

Job contract type (full-time, part-time, contract, internship).

work_mode

String

Workplace setting (remote, hybrid, onsite).

sort_by

String

Results sorting order (most_relevant, newest, high_cpa).

Public Jobs API CURL Examples

1. Fetching Jobs strictly in a specific Country (e.g., India)

This query fetches up to 10 jobs specifically in India. Because a geographic filter (location) is provided, geo-boosting/relaxation is disabled and only jobs in India are returned.

curl --location 'https://api.artha.link/api/v1/jobs?limit=10&location=IN'\
--header 'X-API-Key: ak_live_'

2. Filtering by Niche Category (e.g., Software Development)

This filters jobs by the software-development category. If no geographic filters are specified, it will use the creator's default configuration and geolocate the user's IP.

curl --location 'https://api.artha.link/api/v1/jobs?limit=10&categories=software-development' \--header 'X-API-Key: ak_live_'

3. Searching by Keywords (e.g., React developer roles)

This runs a search query q=React against the recommendation engine:

curl --location 'https://api.artha.link/api/v1/jobs?limit=10&q=React' \
--header 'X-API-Key: ak_live_'

4. Fetching Full-Time Remote Jobs

This filters results strictly by job type and work mode:

curl --location 'https://api.artha.link/api/v1/jobs?limit=10&job_type=full-time&work_mode=remote' \
--header 'X-API-Key: ak_live_'

Example response:

{
"success": true,
"message": "Jobs fetched successfully",
"data": {
"items": [
{
"id": "1831_20882683",
"slug": "sales-manager-geo-allianz-chhindwara-fe01e75d",
"title": "Sales Manager Geo",
"company": "Allianz",
"logo": "https://static.example.com/logo.png",
"description": "<p><b>Job Description:</b> ...</p>",
"location": null,
"city": "Chhindwara",
"state": "Madhya Pradesh",
"country": "IN",
"job_type": "full-time",
"salary_min": null,
"salary_max": null,
"salary_curr": null,
"exp_min": 2,
"exp_max": 5,
"exp_unit": "years",
"skills": ["Sales Execution", "Customer Relations"],
"posted_date": "2026-07-21T17:31:44",
"url": "https://artha.link/@your-username/jobs/sales-manager-geo-allianz-chhindwara-fe01e75d?clientId=...&domainName=your-username&source=public-api&utm_source=artha-link"
}
],
"total": 113097,
"limit": 10,
"offset": 0,
"has_more": true
}
}

Important: always link users to the url field. It points to the job page on your artha.link profile with tracking parameters already included, so applications from your integration stay attributed to you and count toward your earnings.

GET /jobs/filters

Returns available filter options for building job-search UIs: categories, job types, experience levels, education levels, work modes, countries, states, cities, companies, industries, salary ranges, and the total job count. Each option includes its value and matching job count.

curl "https://api.artha.link/api/v1/jobs/filters" \
-H "X-API-Key: ak_live_YOUR_TOKEN"

Errors

Error responses have the shape { "success": false, "error": { "code": "...", "message": "..." } }.

Status

Code

Meaning

400

VALIDATION_ERROR

Invalid query parameters

401

MISSING_API_KEY

No token provided

401

INVALID_API_KEY

Token does not exist or is malformed

401

API_KEY_REVOKED

Token has been revoked

401

API_KEY_EXPIRED

Token passed its expiration date

403

CREATOR_BLOCKED

Account is not active

429

RATE_LIMIT_EXCEEDED

Too many requests

502

EXTERNAL_API_ERROR

Job data temporarily unavailable — retry shortly

Requests are rate limited per token. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers; a 429 response also includes Retry-After (seconds) — wait that long before retrying.

Tips

  • Track your token's activity (endpoint, status, IP, last used) from the API page via View usage.

  • Building with an AI assistant? Use the Copy LLM prompt button on the API page — it copies a ready-made implementation brief you can paste into ChatGPT, Claude, or Cursor

Did this answer your question?