# Jobstreet — Zapi reference > Jobstreet Indonesia via its GraphQL API — job search, detail, counts, classifications and location suggestions with the full filter surface. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zpi.web.id/dashboard/keys. **Response envelope:** `{ content, message, errors }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zpi.web.id/api/jobs/jobstreet - Endpoint catalog: https://zpi.web.id/category/jobs - Concise index: https://zpi.web.id/llms.txt - Full reference: https://zpi.web.id/llms-full.txt --- ## Jobstreet **Category:** jobs · **Slug:** `jobstreet` **Detail page:** https://zpi.web.id/api/jobs/jobstreet Jobstreet Indonesia via its GraphQL API — job search, detail, counts, classifications and location suggestions with the full filter surface. **Tags:** jobstreet, seek, lowongan, karir, indonesia ### Casual Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/casual-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/casual-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/casual-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/casual-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 3, "items": [ { "url": "https://id.jobstreet.com/id/job/94338835", "jobId": "94338835", "perks": [ "Fasilitas mess tempat tinggal", "Self improvement program" ], "title": "Full Stack Engineer — Payment Gateway Integration", "salary": { "max": 10000000, "min": 7500000, "shown": true, "display": "Rp 7.500.000 – Rp 10.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "3705622", "logo": "https://bx-branding-gateway.cloud.seek.com.au/b5e70b47-b787-4872-8380-9a56bf74f137.1/jdpLogo", "name": "PT RUMAH PENGIRIMAN UANG INDONESIA", "advertiserId": "63796840", "advertiserName": "PT RUMAH PENGIRIMAN UANG INDONESIA" }, "applyUrl": "https://id.jobstreet.com/id/job/94338835/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": true, "location": { "id": "2030501", "city": "West Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-01T08:18:24.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-software-engineer", "engineer" ], "description": "Apply sekarang atau kirim CV kamu — kandidat dengan pengalaman payment gateway & Mandarin akan diprioritaskan.", "classification": "Information & Communication Technology", "employmentType": "Casual/Vacation", "workArrangement": "On-site", "employmentTypeId": "245" }, { "url": "https://id.jobstreet.com/id/job/94276888", "jobId": "94276888", "title": "Product Manager - WFO - Jakarta (ID: 710831)", "salary": { "max": 15000000, "min": 15000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "373175", "logo": "https://bx-branding-gateway.cloud.seek.com.au/c21d9c05-fa90-4d59-a66a-fca9b87fc596.2/jdpLogo", "name": "PERSOL", "advertiserId": "60174776", "advertiserName": "PT PERSOL RECRUITMENT INDONESIA" }, "applyUrl": "https://id.jobstreet.com/id/job/94276888/apply", "function": "Product Management & Development", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-08-28T09:26:46.000Z", "categories": [ { "id": "6294", "label": "Product Management & Development" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "product-manager", "manager" ], "description": "Position : Product Manager\n\nLocation : Jakarta", "classification": "Information & Communication Technology", "employmentType": "Casual/Vacation", "workArrangement": "On-site", "employmentTypeId": "245" }, { "url": "https://id.jobstreet.com/id/job/94266656", "jobId": "94266656", "title": "Internship - IT Product Quality Control", "salary": { "max": 1900000, "min": 1500000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "666355", "logo": "https://bx-branding-gateway.cloud.seek.com.au/1a9b5635-205f-484e-bb10-734b3d75d48b.1/jdpLogo", "name": "PT Langgeng Sukses Abadi Teknologi", "profileUrl": "https://id.jobstreet.com/companies/pt-langgeng-sukses-abadi-teknologi-168556371496520", "advertiserId": "60950150", "advertiserName": "PT LANGGENG SUKSES ABADI TEKHNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94266656/apply", "function": "Testing & Quality Assurance", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030505", "city": "North Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-08-28T04:58:26.000Z", "categories": [ { "id": "6301", "label": "Testing & Quality Assurance" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "Information-Technology-Intern", "quality-control-role" ], "classification": "Information & Communication Technology", "employmentType": "Casual/Vacation", "workArrangement": "On-site", "employmentTypeId": "245" } ], "limit": 5, "query": "developer", "total": 3, "hasMore": false, "nextPage": null, "provider": "jobstreet", "employmentType": "casual" } ``` --- ### Classifications Jobstreet Indonesia job-classification vocabulary — the `categoryV1` facet of SEEK's own `JobSearchV7` operation, rung 1 (plain `direct` POST to /graphql), ~350ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/classifications` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Scope the vocabulary to one search. Omit for the whole board. | | `location` | string | query | no | Scope the vocabulary to one location. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/classifications?query=developer&location=Jakarta%20Raya" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/classifications?query=developer&location=Jakarta%20Raya", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/classifications?query=developer&location=Jakarta%20Raya", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 20, "items": [ { "id": "6281", "label": "Information & Communication Technology", "jobCount": 1095 }, { "id": "6287", "label": "Developers/Programmers", "jobCount": 416 }, { "id": "6008", "label": "Marketing & Communications", "jobCount": 135 }, { "id": "6283", "label": "Business/Systems Analysts", "jobCount": 108 }, { "id": "6290", "label": "Engineering - Software", "jobCount": 106 }, { "id": "6362", "label": "Sales", "jobCount": 104 } ], "query": "developer", "provider": "jobstreet" } ``` --- ### Company Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/company-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `companyId` | string | query | no | Comma-separated organisation ids — the `company.id` a search item carries. | | `companyName` | string | query | no | Exact organisation name. | | `advertiserId` | string | query | no | Comma-separated advertiser ids — the `company.advertiserId` a search item carries. | | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/company-jobs?companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/company-jobs?companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/company-jobs?companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 5, "query": "developer", "total": 0, "hasMore": false, "nextPage": null, "provider": "jobstreet", "companyId": "541129", "companyName": "Emdee Skin Clinic", "advertiserId": "60863946" } ``` --- ### Contract Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/contract-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/contract-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/contract-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/contract-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94371152", "jobId": "94371152", "title": "Java Backend Developer", "salary": { "max": 18000000, "min": 15000000, "shown": true, "display": "Rp 15.000.000 – Rp 18.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "8938", "name": "Nityo Infotech", "profileUrl": "https://id.jobstreet.com/companies/nityo-infotech-168555794774021", "advertiserId": "60962064", "advertiserName": "PT Nityo Infotech" }, "applyUrl": "https://id.jobstreet.com/id/job/94371152/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:00.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "back-end-java-developer", "backend-developer", "developer" ], "description": "We are hiring Backend Developer for our client in Insurance Industry", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94370785", "jobId": "94370785", "title": "STAFF IT", "salary": { "max": 5500000, "min": 5000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "429513", "name": "Satya Negara Hospital", "profileUrl": "https://id.jobstreet.com/companies/satya-negara-hospital-168556646084144", "advertiserId": "60909066", "advertiserName": "Rumah Sakit Satya Negara" }, "applyUrl": "https://id.jobstreet.com/id/job/94370785/apply", "function": "Networks & Systems Administration", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030505", "city": "North Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:08:52.000Z", "categories": [ { "id": "6293", "label": "Networks & Systems Administration" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "Information-Technology-Staff" ], "description": "Bergabunglah dengan tim IT rumah sakit terkemuka. Karir berkembang, benefit kompetitif, lingkungan profesional.", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94367780", "jobId": "94367780", "title": "Network Engineer Internship", "salary": { "max": 3000000, "min": 2000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "667532", "name": "Mitra Solusi Telematika", "profileUrl": "https://id.jobstreet.com/companies/mitra-solusi-telematika-168552926972484", "advertiserId": "60886101", "advertiserName": "PT Mitra Solusi Telematika" }, "applyUrl": "https://id.jobstreet.com/id/job/94367780/apply", "function": "Engineering - Network", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T08:19:07.000Z", "categories": [ { "id": "6289", "label": "Engineering - Network" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "Network-Engineering-Intern", "network-engineer", "engineer" ], "description": "Network Engineer Intern supporting and maintaining network infrastructure.", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94366080", "jobId": "94366080", "perks": [ "Lingkungan Kerja Kolaboratif", "Kompensasi dan Benefit Kompetitif", "Program Pelatihan dan Pengembangan" ], "title": "ASSISTANT OFFICER SISTEM INFORMASI", "salary": { "max": 11000000, "min": 7500000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "name": "Private Advertiser", "advertiserName": "Private Advertiser" }, "applyUrl": "https://id.jobstreet.com/id/job/94366080/apply", "function": "Engineering - Software", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T08:00:44.000Z", "categories": [ { "id": "6290", "label": "Engineering - Software" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "assistant-officer", "assistant_2", "officer" ], "description": "Bergabunglah dengan tim profesional kami untuk meningkatkan kompetensi dan menciptakan dampak nyata untuk Indonesia", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94371853", "jobId": "94371853", "title": "Technical Project Manager / Business Analyst (Banking Syariah)", "salary": { "max": 10500000, "min": 9500000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "639209", "name": "Sigma Global Technology", "profileUrl": "https://id.jobstreet.com/companies/sigma-global-technology-168555671729481", "advertiserId": "60246968", "advertiserName": "PT. SIGMA GLOBAL TEKNOLOGI (SIGMATECH)" }, "applyUrl": "https://id.jobstreet.com/id/job/94371853/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T08:00:21.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "technical-project-manager", "Banking-Business-Analyst", "business-manager", "business-analyst", "banking-analyst", "project-manager" ], "description": "* Membuat perencanaan teknis terkait project pengembangan mobile banking\n* Menjalankan komunikasi yang efektif dengan stakeholder terkait dengan...", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" } ], "limit": 5, "query": "developer", "total": 106, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "employmentType": "contract" } ``` --- ### Count Jobstreet Indonesia result count — SEEK's own `JobCountV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), ~150ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/count` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `distanceKm` | number | query | no | Radius around the location in km. 0 means exact location only. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `employmentType` | enum(fullTime|partTime|contract|casual) | query | no | Employment type. | | `workArrangement` | enum(onsite|hybrid|remote) | query | no | Where the work is done. | | `salaryMin` | number | query | no | Lower salary bound, in the unit given by salaryType. | | `salaryMax` | number | query | no | Upper salary bound, in the unit given by salaryType. | | `salaryType` | enum(hourly|monthly|annual) | query | no | Unit the salary bounds are expressed in. Default monthly. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `companyId` | string | query | no | Comma-separated organisation ids. | | `companyName` | string | query | no | Exact organisation name. | | `advertiserId` | string | query | no | Comma-separated advertiser ids. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/count?query=developer&location=Jakarta%20Raya&locationId=2030503&distanceKm=25&classificationId=6281&employmentType=fullTime&workArrangement=remote&salaryMin=10000000&salaryMax=25000000&salaryType=monthly&postedWithinDays=7&companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/count?query=developer&location=Jakarta%20Raya&locationId=2030503&distanceKm=25&classificationId=6281&employmentType=fullTime&workArrangement=remote&salaryMin=10000000&salaryMax=25000000&salaryType=monthly&postedWithinDays=7&companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/count?query=developer&location=Jakarta%20Raya&locationId=2030503&distanceKm=25&classificationId=6281&employmentType=fullTime&workArrangement=remote&salaryMin=10000000&salaryMax=25000000&salaryType=monthly&postedWithinDays=7&companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "query": "developer", "total": 0, "filter": { "listedAt": "7d", "salaryMax": "5m", "salaryMin": "10000000m", "categoryId": [ "6281" ], "workTypeId": [ "242" ], "advertiserId": [ "60863946" ], "organisationId": [ "541129" ], "organisationName": [ "Emdee Skin Clinic" ], "workArrangementId": [ "3" ] }, "location": "Jakarta Raya", "provider": "jobstreet", "distanceKm": 25 } ``` --- ### Full Time Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/full-time-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/full-time-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/full-time-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/full-time-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94371328", "jobId": "94371328", "perks": [ "BPJS TK DAN KES", "ASURANSI", "WORK LIFE BALANCE" ], "title": "Head IT - Fullstack Developer (Fintech P2P)", "salary": { "max": 17000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 17.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "434437", "logo": "https://bx-branding-gateway.cloud.seek.com.au/92f3e966-bea3-452d-b1ac-7cda3edd26a2.1/jdpLogo", "name": "PT Kredit Plus Teknologi", "profileUrl": "https://id.jobstreet.com/companies/pt-kredit-plus-teknologi-168553581833749", "advertiserId": "60959095", "advertiserName": "PT KREDIT PLUS TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94371328/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2032906", "city": "Tangerang", "region": "Banten", "country": "Indonesia" }, "postedAt": "2026-09-02T10:44:59.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-developer", "head-of-information-technology", "developer" ], "description": "Responsibilities: Conceptualizing and formulating apps that are suitable for use on all types of Android devices. Implementing", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371155", "jobId": "94371155", "perks": [ "Permanent Position", "Multinational Company", "Technical Lead" ], "title": "Application Support Manager (B2B SaaS)", "salary": { "max": 30000000, "min": 20000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "444344", "logo": "https://bx-branding-gateway.cloud.seek.com.au/9add92ee-a8fb-4c4d-a06e-7235b467e2f1.1/jdpLogo", "name": "Cartrack", "profileUrl": "https://id.jobstreet.com/companies/cartrack-168552645717832", "advertiserId": "60179946", "advertiserName": "Cartrack Technologies Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94371155/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:17.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "application-support-manager", "application-support", "support-manager", "manager" ], "description": "Leading support operations, incident resolution, and team performance to ensure system reliability and service excellence.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371039", "jobId": "94371039", "perks": [ "Company Culture", "Competitive Benefit", "Annual Bonus" ], "title": "Software Developer Lead", "salary": { "max": 13000000, "min": 9000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "391053", "logo": "https://bx-branding-gateway.cloud.seek.com.au/117b4566-4cf2-4acb-a22d-239a555bd9d8.1/jdpLogo", "name": "Syspex", "profileUrl": "https://id.jobstreet.com/companies/syspex-168551634884288", "advertiserId": "60863556", "advertiserName": "PT Syspex Kemasindo" }, "applyUrl": "https://id.jobstreet.com/id/job/94371039/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030706", "city": "Cikarang", "country": "Indonesia" }, "postedAt": "2026-09-02T10:21:14.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "software-developer", "developer" ], "description": "Lead and manage the software team in developing and integrating AI, automation, robotics, and smart factory solutions for Syspex.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94370880", "jobId": "94370880", "title": "IT Manager", "salary": { "max": 15000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 15.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "658340", "name": "Sant Group Indonesia", "profileUrl": "https://id.jobstreet.com/companies/sant-group-indonesia-168550159624082", "advertiserId": "61131393", "advertiserName": "PT Sant Group Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94370880/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030502", "city": "Central Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:14:09.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "information-technology-manager", "manager" ], "description": "- BPJS\n- Meal Allowance", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94370532", "jobId": "94370532", "title": ".Net Developer", "salary": { "max": 12000000, "min": 8000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "3593773", "logo": "https://bx-branding-gateway.cloud.seek.com.au/8f7e3933-1063-4012-98c3-46155839f338.1/jdpLogo", "name": "PT Pandawa Karir Citra", "advertiserId": "63571952", "advertiserName": "PT Pandawa Karir Citra" }, "applyUrl": "https://id.jobstreet.com/id/job/94370532/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T09:57:21.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ ".net-software-developer", "developer" ], "description": "Berpengalaman dan menguasai .Net Developer dan SQL", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" } ], "limit": 5, "query": "developer", "total": 159, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "employmentType": "fullTime" } ``` --- ### Hybrid Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/hybrid-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/hybrid-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/hybrid-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/hybrid-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94368298", "jobId": "94368298", "title": "Business Analyst", "salary": { "max": 15000000, "min": 10000000, "shown": true, "display": "Rp 10.000.000 – Rp 15.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "803374", "logo": "https://bx-branding-gateway.cloud.seek.com.au/433e85c1-9525-44d3-84d0-dc28a53adb62.1/jdpLogo", "name": "Nomura Research Institute", "advertiserId": "60901180", "advertiserName": "PT Nomura Research Institute Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94368298/apply", "function": "Business/Systems Analysts", "isHybrid": true, "isOnsite": false, "isRemote": false, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T08:37:53.000Z", "categories": [ { "id": "6283", "label": "Business/Systems Analysts" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "business-analyst", "analyst" ], "description": "Business Analyst to support clients in business and digital transformation.", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "Hybrid", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94354219", "jobId": "94354219", "title": "Senior Fullstack Developer", "salary": { "max": 20000000, "min": 13500000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "634891", "name": "Jaya Agung Technology", "profileUrl": "https://id.jobstreet.com/companies/jaya-agung-technology-168556118455125", "advertiserId": "61078805", "advertiserName": "PT JAYA AGUNG TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94354219/apply", "function": "Developers/Programmers", "isHybrid": true, "isOnsite": false, "isRemote": false, "isUrgent": false, "location": { "id": "2030505", "city": "North Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T02:23:40.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-developer", "developer" ], "description": "This is an exciting opportunity for experienced Fullstack developers, to \njoin our growing engineering team that develops a complete website product.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Hybrid", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94348389", "jobId": "94348389", "title": "Senior Back End Developer - Banking (Can Join Immediately)", "salary": { "max": 25500002, "min": 22499998, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "639209", "name": "Sigma Global Technology", "profileUrl": "https://id.jobstreet.com/companies/sigma-global-technology-168555671729481", "advertiserId": "60246968", "advertiserName": "PT. SIGMA GLOBAL TEKNOLOGI (SIGMATECH)" }, "applyUrl": "https://id.jobstreet.com/id/job/94348389/apply", "function": "Developers/Programmers", "isHybrid": true, "isOnsite": false, "isRemote": false, "isUrgent": false, "location": { "id": "35447", "city": "Tangerang District", "region": "Banten", "country": "Indonesia" }, "postedAt": "2026-09-01T11:14:09.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "backend-developer", "developer" ], "description": "1. Proven experience min. 5 years in software developer - Backend\n2. Strong knowledge in Programing with Javascript, Java, Golang, Rust, Laravel\n3....", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "Hybrid", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94342425", "jobId": "94342425", "title": "Full-Stack AI Engineer", "salary": { "max": 20000000, "min": 14000000, "shown": true, "display": "Rp 14.000.000 – Rp 20.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "name": "PT PELITA HARAPAN TEKNOLOGI", "advertiserId": "63853187", "advertiserName": "PT PELITA HARAPAN TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94342425/apply", "function": "Developers/Programmers", "isHybrid": true, "isOnsite": false, "isRemote": false, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-01T11:10:53.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "Artificial-Intelligence-Engineer", "engineer" ], "description": "We are looking for a Full-Stack AI Engineer with a strong backend focus to help design and develop the infrastructure powering these AI employees.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Hybrid", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94315376", "jobId": "94315376", "perks": [ "Hybrid Working Scheme", "Surplus Sharing", "Learning and Certification Provided" ], "title": "Product Manager B2B / Product Consultant", "salary": { "max": 13500000, "min": 9500000, "shown": true, "display": "Rp 9.500.000 – Rp 13.500.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "725340", "logo": "https://bx-branding-gateway.cloud.seek.com.au/20810540-2f73-404f-a080-20ab66360664.1/jdpLogo", "name": "PT Rakamin Kolektif Madani", "advertiserId": "60221718", "advertiserName": "PT Rakamin Kolektif Madani" }, "applyUrl": "https://id.jobstreet.com/id/job/94315376/apply", "function": "Product Management & Development", "isHybrid": true, "isOnsite": false, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-08-31T11:39:43.000Z", "categories": [ { "id": "6294", "label": "Product Management & Development" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "product-consultant", "product-manager", "consultant", "manager" ], "description": "Product management and business analysis role carrying client modules end-to-end from process mapping to UAT sign-off.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Hybrid", "employmentTypeId": "242" } ], "limit": 5, "query": "developer", "total": 16, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "workArrangement": "hybrid" } ``` --- ### Job Jobstreet Indonesia job detail — SEEK's own `jobDetails` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 200-360ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/job/:jobId` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `jobId` | string | path | yes | Jobstreet job id, the number in /id/job/. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/job/:jobId" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/job/:jobId", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/job/:jobId", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "url": "https://id.jobstreet.com/id/job/94338824", "jobId": "94338824", "perks": [ "Medical", "Education support" ], "title": "Full Stack Developer", "video": "https://www.youtube.com/embed/c5ShWRk2pls", "status": "Active", "company": { "id": "168557133516810", "logo": "https://image-service-cdn.seek.com.au/b729cee00d240029d4b6e842645a50edb6f64f28", "name": "Maipark Reinsurance Indonesia", "size": "51-100 employees", "slug": "maipark-reinsurance-indonesia-168557133516810", "cover": "https://image-service-cdn.seek.com.au/5f2c0a3baf36857091674fad2ce2ae30929b94fb/08dae2c6997204dba48aabd3bdab57c25450f374", "jobsUrl": "https://id.jobstreet.com/Maipark-Reinsurance-Indonesia-jobs/at-this-company", "website": "http://www.maipark.com", "industry": "Insurance", "verified": true, "isPrivate": false, "description": "PT Resuransi MAIPARK Indonesia was certified as the 2nd Best Reinsurance Company 2014 at the Indonesia Insurance Award 2014 hosted by Indonesia-Asia Institute in cooperation with Perbanas Institute and Economic Review on Mei 2014.\n\nMAIPARK honored first place in Finance & IT and 2nd place for Good Corporate Governance, Risk Management, Marketing, Human Capital, Corporate Communication and Corporate Social Responsibility.\n\nPT. REASURANSI MAIPARK INDONESIA is a Reinsurance Company owned by all Indonesian General Insurance/Reinsurance companies. It specializes in Earthquake Reinsurance.\n\nVision\n\nTo become internationally recognized leader in catastrophe reinsurance in ASEAN, a “Center of Excellence and Competence” with a name synonymous with professionalism of the highest standard.\n\nMission\n\nTo develop national and regional database of catastrophe risks ready to provide information and knowledge for industry to insure them appropriately.To build competences necessary for the application of sound underwriting in insurance of catastrophe risks.To actively promote and take part in network of studies and research in catastrophe risks relating to insurance.To actively promote awareness of catastrophe risks and the role of insurance in managing the risks.To build sound national reinsurance capacities for earthquake insurance for Indonesia insurance industry.\n\nFor more information please visit : www.maipark.com.", "advertiserId": "60863946", "registeredAt": "2007-09-25T06:18:02.863Z", "advertiserName": "PT Reasuransi Maipark Indonesia" }, "summary": "Kami mencari Fullstack Developer yang berorientasi solusi, bertanggung jawab atas pengembangan aplikasi serta terlibat dalam siklus pengembangan.", "applyUrl": "https://id.jobstreet.com/id/job/94338824/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "location": { "ids": [ "2030503" ], "city": "South Jakarta", "label": "South Jakarta, Jakarta", "state": "Jakarta", "country": "Indonesia", "countryCode": "ID" }, "postedAt": "2026-09-01T08:17:54.068Z", "provider": "jobstreet", "shareUrl": "https://id.jobstreet.com/job/94338824?tracking=SHR-WEB-SharedJob-asia-4", "expiresAt": "2026-10-01T13:59:59.999Z", "isExpired": false, "roleTitle": "Full Stack Developer", "functionId": "6287", "isExternal": false, "isVerified": true, "description": "

Deskripsi Pekerjaan:  


Kualifikasi Umum:   


Kualifikasi Teknis (Hard Skills):


", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "classificationId": "6281", "employmentTypeId": "244", "screeningQuestions": [ "Pernyataan mana di bawah ini yang paling mendeskripsikan hakmu bekerja di Indonesia?", "Berapa gaji bulanan yang kamu inginkan?", "How many years' experience do you have as a Full Stack Developer?", "Kualifikasi mana yang kamu miliki?" ], "hasRoleRequirements": true } ``` --- ### Jobs By Classification Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-classification` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `classificationId` | string | query | yes | Comma-separated classification or subclassification ids — see classifications. | | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-classification?classificationId=6281&query=developer&location=Jakarta%20Raya&locationId=2030503&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-classification?classificationId=6281&query=developer&location=Jakarta%20Raya&locationId=2030503&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-classification?classificationId=6281&query=developer&location=Jakarta%20Raya&locationId=2030503&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94371328", "jobId": "94371328", "perks": [ "BPJS TK DAN KES", "ASURANSI", "WORK LIFE BALANCE" ], "title": "Head IT - Fullstack Developer (Fintech P2P)", "salary": { "max": 17000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 17.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "434437", "logo": "https://bx-branding-gateway.cloud.seek.com.au/92f3e966-bea3-452d-b1ac-7cda3edd26a2.1/jdpLogo", "name": "PT Kredit Plus Teknologi", "profileUrl": "https://id.jobstreet.com/companies/pt-kredit-plus-teknologi-168553581833749", "advertiserId": "60959095", "advertiserName": "PT KREDIT PLUS TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94371328/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2032906", "city": "Tangerang", "region": "Banten", "country": "Indonesia" }, "postedAt": "2026-09-02T10:44:59.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-developer", "head-of-information-technology", "developer" ], "description": "Responsibilities: Conceptualizing and formulating apps that are suitable for use on all types of Android devices. Implementing", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371155", "jobId": "94371155", "perks": [ "Permanent Position", "Multinational Company", "Technical Lead" ], "title": "Application Support Manager (B2B SaaS)", "salary": { "max": 30000000, "min": 20000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "444344", "logo": "https://bx-branding-gateway.cloud.seek.com.au/9add92ee-a8fb-4c4d-a06e-7235b467e2f1.1/jdpLogo", "name": "Cartrack", "profileUrl": "https://id.jobstreet.com/companies/cartrack-168552645717832", "advertiserId": "60179946", "advertiserName": "Cartrack Technologies Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94371155/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:17.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "application-support-manager", "application-support", "support-manager", "manager" ], "description": "Leading support operations, incident resolution, and team performance to ensure system reliability and service excellence.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371152", "jobId": "94371152", "title": "Java Backend Developer", "salary": { "max": 18000000, "min": 15000000, "shown": true, "display": "Rp 15.000.000 – Rp 18.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "8938", "name": "Nityo Infotech", "profileUrl": "https://id.jobstreet.com/companies/nityo-infotech-168555794774021", "advertiserId": "60962064", "advertiserName": "PT Nityo Infotech" }, "applyUrl": "https://id.jobstreet.com/id/job/94371152/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:00.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "back-end-java-developer", "backend-developer", "developer" ], "description": "We are hiring Backend Developer for our client in Insurance Industry", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94371039", "jobId": "94371039", "perks": [ "Company Culture", "Competitive Benefit", "Annual Bonus" ], "title": "Software Developer Lead", "salary": { "max": 13000000, "min": 9000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "391053", "logo": "https://bx-branding-gateway.cloud.seek.com.au/117b4566-4cf2-4acb-a22d-239a555bd9d8.1/jdpLogo", "name": "Syspex", "profileUrl": "https://id.jobstreet.com/companies/syspex-168551634884288", "advertiserId": "60863556", "advertiserName": "PT Syspex Kemasindo" }, "applyUrl": "https://id.jobstreet.com/id/job/94371039/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030706", "city": "Cikarang", "country": "Indonesia" }, "postedAt": "2026-09-02T10:21:14.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "software-developer", "developer" ], "description": "Lead and manage the software team in developing and integrating AI, automation, robotics, and smart factory solutions for Syspex.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94370880", "jobId": "94370880", "title": "IT Manager", "salary": { "max": 15000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 15.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "658340", "name": "Sant Group Indonesia", "profileUrl": "https://id.jobstreet.com/companies/sant-group-indonesia-168550159624082", "advertiserId": "61131393", "advertiserName": "PT Sant Group Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94370880/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030502", "city": "Central Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:14:09.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "information-technology-manager", "manager" ], "description": "- BPJS\n- Meal Allowance", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" } ], "limit": 5, "query": "developer", "total": 270, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "classificationIds": [ "6281" ] } ``` --- ### Jobs By Location Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-location` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `distanceKm` | number | query | no | Radius around the location in km. 0 means exact location only. | | `query` | string | query | no | Free-text search across job titles and descriptions. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-location?location=Jakarta%20Raya&locationId=2030503&distanceKm=25&query=developer&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-location?location=Jakarta%20Raya&locationId=2030503&distanceKm=25&query=developer&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-location?location=Jakarta%20Raya&locationId=2030503&distanceKm=25&query=developer&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94371328", "jobId": "94371328", "perks": [ "BPJS TK DAN KES", "ASURANSI", "WORK LIFE BALANCE" ], "title": "Head IT - Fullstack Developer (Fintech P2P)", "salary": { "max": 17000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 17.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "434437", "logo": "https://bx-branding-gateway.cloud.seek.com.au/92f3e966-bea3-452d-b1ac-7cda3edd26a2.1/jdpLogo", "name": "PT Kredit Plus Teknologi", "profileUrl": "https://id.jobstreet.com/companies/pt-kredit-plus-teknologi-168553581833749", "advertiserId": "60959095", "advertiserName": "PT KREDIT PLUS TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94371328/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2032906", "city": "Tangerang", "region": "Banten", "country": "Indonesia" }, "postedAt": "2026-09-02T10:44:59.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-developer", "head-of-information-technology", "developer" ], "description": "Responsibilities: Conceptualizing and formulating apps that are suitable for use on all types of Android devices. Implementing", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371155", "jobId": "94371155", "perks": [ "Permanent Position", "Multinational Company", "Technical Lead" ], "title": "Application Support Manager (B2B SaaS)", "salary": { "max": 30000000, "min": 20000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "444344", "logo": "https://bx-branding-gateway.cloud.seek.com.au/9add92ee-a8fb-4c4d-a06e-7235b467e2f1.1/jdpLogo", "name": "Cartrack", "profileUrl": "https://id.jobstreet.com/companies/cartrack-168552645717832", "advertiserId": "60179946", "advertiserName": "Cartrack Technologies Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94371155/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:17.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "application-support-manager", "application-support", "support-manager", "manager" ], "description": "Leading support operations, incident resolution, and team performance to ensure system reliability and service excellence.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371152", "jobId": "94371152", "title": "Java Backend Developer", "salary": { "max": 18000000, "min": 15000000, "shown": true, "display": "Rp 15.000.000 – Rp 18.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "8938", "name": "Nityo Infotech", "profileUrl": "https://id.jobstreet.com/companies/nityo-infotech-168555794774021", "advertiserId": "60962064", "advertiserName": "PT Nityo Infotech" }, "applyUrl": "https://id.jobstreet.com/id/job/94371152/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:00.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "back-end-java-developer", "backend-developer", "developer" ], "description": "We are hiring Backend Developer for our client in Insurance Industry", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94370880", "jobId": "94370880", "title": "IT Manager", "salary": { "max": 15000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 15.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "658340", "name": "Sant Group Indonesia", "profileUrl": "https://id.jobstreet.com/companies/sant-group-indonesia-168550159624082", "advertiserId": "61131393", "advertiserName": "PT Sant Group Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94370880/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030502", "city": "Central Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:14:09.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "information-technology-manager", "manager" ], "description": "- BPJS\n- Meal Allowance", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94370785", "jobId": "94370785", "title": "STAFF IT", "salary": { "max": 5500000, "min": 5000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "429513", "name": "Satya Negara Hospital", "profileUrl": "https://id.jobstreet.com/companies/satya-negara-hospital-168556646084144", "advertiserId": "60909066", "advertiserName": "Rumah Sakit Satya Negara" }, "applyUrl": "https://id.jobstreet.com/id/job/94370785/apply", "function": "Networks & Systems Administration", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030505", "city": "North Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:08:52.000Z", "categories": [ { "id": "6293", "label": "Networks & Systems Administration" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "Information-Technology-Staff" ], "description": "Bergabunglah dengan tim IT rumah sakit terkemuka. Karir berkembang, benefit kompetitif, lingkungan profesional.", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" } ], "limit": 5, "query": "developer", "total": 266, "hasMore": true, "location": "Jakarta Raya", "nextPage": 2, "provider": "jobstreet", "distanceKm": 25, "locationId": "2030503" } ``` --- ### Jobs By Salary Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-salary` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `salaryMin` | number | query | no | Lower salary bound, in the unit given by salaryType. | | `salaryMax` | number | query | no | Upper salary bound, in the unit given by salaryType. | | `salaryType` | enum(hourly|monthly|annual) | query | no | Unit the salary bounds are expressed in. Default monthly. | | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-salary?salaryMin=10000000&salaryMax=25000000&salaryType=monthly&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-salary?salaryMin=10000000&salaryMax=25000000&salaryType=monthly&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/jobs-by-salary?salaryMin=10000000&salaryMax=25000000&salaryType=monthly&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 5, "query": "developer", "total": 0, "hasMore": false, "nextPage": null, "provider": "jobstreet", "salaryMax": 5, "salaryMin": 10000000, "salaryType": "monthly" } ``` --- ### Keyword Suggest Jobstreet Indonesia keyword autocomplete — SEEK's own `searchKeywordsSuggest` GraphQL operation, rung 1 (plain `direct` POST to /graphql), ~135ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/keyword-suggest` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Partial keyword to complete. | | `limit` | number | query | no | Maximum suggestions. Default 10. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/keyword-suggest?query=dev&limit=10" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/keyword-suggest?query=dev&limit=10", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/keyword-suggest?query=dev&limit=10", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 2, "items": [ { "text": "Community Development", "highlights": [ { "end": 10, "start": 0 }, { "end": 21, "start": 13 } ] }, { "text": "Web Developer", "highlights": [ { "end": 4, "start": 0 }, { "end": 13, "start": 7 } ] } ], "query": "dev", "provider": "jobstreet" } ``` --- ### Location Suggest Jobstreet Indonesia location autocomplete — SEEK's own `searchLocationsSuggest` GraphQL operation, rung 1 (plain `direct` POST to /graphql), ~135ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/location-suggest` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Partial place name to complete. | | `limit` | number | query | no | Maximum suggestions. Default 10. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/location-suggest?query=jak&limit=10" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/location-suggest?query=jak&limit=10", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/location-suggest?query=jak&limit=10", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 5, "items": [ { "text": "Jakarta", "highlights": [ { "end": 7, "start": 3 } ] }, { "text": "Jakabaring South Sumatra", "highlights": [ { "end": 24, "start": 3 } ] }, { "text": "Jakenan Central Java", "highlights": [ { "end": 20, "start": 3 } ] }, { "text": "Jaken Central Java", "highlights": [ { "end": 18, "start": 3 } ] }, { "text": "South Jakarta Jakarta", "highlights": [ { "end": 6, "start": 0 }, { "end": 21, "start": 9 } ] } ], "query": "jak", "provider": "jobstreet" } ``` --- ### Onsite Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/onsite-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/onsite-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/onsite-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/onsite-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94371328", "jobId": "94371328", "perks": [ "BPJS TK DAN KES", "ASURANSI", "WORK LIFE BALANCE" ], "title": "Head IT - Fullstack Developer (Fintech P2P)", "salary": { "max": 17000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 17.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "434437", "logo": "https://bx-branding-gateway.cloud.seek.com.au/92f3e966-bea3-452d-b1ac-7cda3edd26a2.1/jdpLogo", "name": "PT Kredit Plus Teknologi", "profileUrl": "https://id.jobstreet.com/companies/pt-kredit-plus-teknologi-168553581833749", "advertiserId": "60959095", "advertiserName": "PT KREDIT PLUS TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94371328/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2032906", "city": "Tangerang", "region": "Banten", "country": "Indonesia" }, "postedAt": "2026-09-02T10:44:59.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-developer", "head-of-information-technology", "developer" ], "description": "Responsibilities: Conceptualizing and formulating apps that are suitable for use on all types of Android devices. Implementing", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371155", "jobId": "94371155", "perks": [ "Permanent Position", "Multinational Company", "Technical Lead" ], "title": "Application Support Manager (B2B SaaS)", "salary": { "max": 30000000, "min": 20000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "444344", "logo": "https://bx-branding-gateway.cloud.seek.com.au/9add92ee-a8fb-4c4d-a06e-7235b467e2f1.1/jdpLogo", "name": "Cartrack", "profileUrl": "https://id.jobstreet.com/companies/cartrack-168552645717832", "advertiserId": "60179946", "advertiserName": "Cartrack Technologies Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94371155/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:17.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "application-support-manager", "application-support", "support-manager", "manager" ], "description": "Leading support operations, incident resolution, and team performance to ensure system reliability and service excellence.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371152", "jobId": "94371152", "title": "Java Backend Developer", "salary": { "max": 18000000, "min": 15000000, "shown": true, "display": "Rp 15.000.000 – Rp 18.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "8938", "name": "Nityo Infotech", "profileUrl": "https://id.jobstreet.com/companies/nityo-infotech-168555794774021", "advertiserId": "60962064", "advertiserName": "PT Nityo Infotech" }, "applyUrl": "https://id.jobstreet.com/id/job/94371152/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:00.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "back-end-java-developer", "backend-developer", "developer" ], "description": "We are hiring Backend Developer for our client in Insurance Industry", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94371039", "jobId": "94371039", "perks": [ "Company Culture", "Competitive Benefit", "Annual Bonus" ], "title": "Software Developer Lead", "salary": { "max": 13000000, "min": 9000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "391053", "logo": "https://bx-branding-gateway.cloud.seek.com.au/117b4566-4cf2-4acb-a22d-239a555bd9d8.1/jdpLogo", "name": "Syspex", "profileUrl": "https://id.jobstreet.com/companies/syspex-168551634884288", "advertiserId": "60863556", "advertiserName": "PT Syspex Kemasindo" }, "applyUrl": "https://id.jobstreet.com/id/job/94371039/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030706", "city": "Cikarang", "country": "Indonesia" }, "postedAt": "2026-09-02T10:21:14.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "software-developer", "developer" ], "description": "Lead and manage the software team in developing and integrating AI, automation, robotics, and smart factory solutions for Syspex.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94370880", "jobId": "94370880", "title": "IT Manager", "salary": { "max": 15000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 15.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "658340", "name": "Sant Group Indonesia", "profileUrl": "https://id.jobstreet.com/companies/sant-group-indonesia-168550159624082", "advertiserId": "61131393", "advertiserName": "PT Sant Group Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94370880/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030502", "city": "Central Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:14:09.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "information-technology-manager", "manager" ], "description": "- BPJS\n- Meal Allowance", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" } ], "limit": 5, "query": "developer", "total": 246, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "workArrangement": "onsite" } ``` --- ### Part Time Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/part-time-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/part-time-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/part-time-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/part-time-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 2, "items": [ { "url": "https://id.jobstreet.com/id/job/94339530", "jobId": "94339530", "title": "AI Implementation Engineer", "salary": { "max": 60000000, "min": 50000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "name": "Private Advertiser", "advertiserName": "Private Advertiser" }, "applyUrl": "https://id.jobstreet.com/id/job/94339530/apply", "function": "Engineering - Software", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030504", "city": "East Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-01T08:44:58.000Z", "categories": [ { "id": "6290", "label": "Engineering - Software" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "implementation-engineer", "engineer" ], "description": "Transforming how organizations deploy artificial intelligence to solve complex operational and business challenges.", "classification": "Information & Communication Technology", "employmentType": "Part time", "workArrangement": "On-site", "employmentTypeId": "243" }, { "url": "https://id.jobstreet.com/id/job/94285236", "jobId": "94285236", "title": "Web Based Programmer & Gamification Creator - Intern", "salary": { "max": 5000000, "min": 4000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "413876", "logo": "https://bx-branding-gateway.cloud.seek.com.au/4a1dc440-3a79-466f-808f-200cdd627289.1/jdpLogo", "name": "Dharma Satya Nusantara", "profileUrl": "https://id.jobstreet.com/companies/dharma-satya-nusantara-168549602856818", "advertiserId": "60258080", "advertiserName": "PT Dharma Satya Nusantara Tbk" }, "applyUrl": "https://id.jobstreet.com/id/job/94285236/apply", "function": "Web Development & Production", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030504", "city": "East Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-08-29T02:59:20.000Z", "categories": [ { "id": "6302", "label": "Web Development & Production" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "programmer" ], "description": "Fresh graduates, come join us!", "classification": "Information & Communication Technology", "employmentType": "Part time", "workArrangement": "On-site", "employmentTypeId": "243" } ], "limit": 5, "query": "developer", "total": 2, "hasMore": false, "nextPage": null, "provider": "jobstreet", "employmentType": "partTime" } ``` --- ### Recent Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/recent-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `withinDays` | number | query | no | How many days back to look. Default 1. | | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/recent-jobs?withinDays=1&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/recent-jobs?withinDays=1&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/recent-jobs?withinDays=1&query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94371328", "jobId": "94371328", "perks": [ "BPJS TK DAN KES", "ASURANSI", "WORK LIFE BALANCE" ], "title": "Head IT - Fullstack Developer (Fintech P2P)", "salary": { "max": 17000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 17.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "434437", "logo": "https://bx-branding-gateway.cloud.seek.com.au/92f3e966-bea3-452d-b1ac-7cda3edd26a2.1/jdpLogo", "name": "PT Kredit Plus Teknologi", "profileUrl": "https://id.jobstreet.com/companies/pt-kredit-plus-teknologi-168553581833749", "advertiserId": "60959095", "advertiserName": "PT KREDIT PLUS TEKNOLOGI" }, "applyUrl": "https://id.jobstreet.com/id/job/94371328/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2032906", "city": "Tangerang", "region": "Banten", "country": "Indonesia" }, "postedAt": "2026-09-02T10:44:59.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "full-stack-developer", "head-of-information-technology", "developer" ], "description": "Responsibilities: Conceptualizing and formulating apps that are suitable for use on all types of Android devices. Implementing", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371155", "jobId": "94371155", "perks": [ "Permanent Position", "Multinational Company", "Technical Lead" ], "title": "Application Support Manager (B2B SaaS)", "salary": { "max": 30000000, "min": 20000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "444344", "logo": "https://bx-branding-gateway.cloud.seek.com.au/9add92ee-a8fb-4c4d-a06e-7235b467e2f1.1/jdpLogo", "name": "Cartrack", "profileUrl": "https://id.jobstreet.com/companies/cartrack-168552645717832", "advertiserId": "60179946", "advertiserName": "Cartrack Technologies Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94371155/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:17.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "application-support-manager", "application-support", "support-manager", "manager" ], "description": "Leading support operations, incident resolution, and team performance to ensure system reliability and service excellence.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94371152", "jobId": "94371152", "title": "Java Backend Developer", "salary": { "max": 18000000, "min": 15000000, "shown": true, "display": "Rp 15.000.000 – Rp 18.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "8938", "name": "Nityo Infotech", "profileUrl": "https://id.jobstreet.com/companies/nityo-infotech-168555794774021", "advertiserId": "60962064", "advertiserName": "PT Nityo Infotech" }, "applyUrl": "https://id.jobstreet.com/id/job/94371152/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030503", "city": "South Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:30:00.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "back-end-java-developer", "backend-developer", "developer" ], "description": "We are hiring Backend Developer for our client in Insurance Industry", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "On-site", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94371039", "jobId": "94371039", "perks": [ "Company Culture", "Competitive Benefit", "Annual Bonus" ], "title": "Software Developer Lead", "salary": { "max": 13000000, "min": 9000000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "391053", "logo": "https://bx-branding-gateway.cloud.seek.com.au/117b4566-4cf2-4acb-a22d-239a555bd9d8.1/jdpLogo", "name": "Syspex", "profileUrl": "https://id.jobstreet.com/companies/syspex-168551634884288", "advertiserId": "60863556", "advertiserName": "PT Syspex Kemasindo" }, "applyUrl": "https://id.jobstreet.com/id/job/94371039/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030706", "city": "Cikarang", "country": "Indonesia" }, "postedAt": "2026-09-02T10:21:14.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "software-developer", "developer" ], "description": "Lead and manage the software team in developing and integrating AI, automation, robotics, and smart factory solutions for Syspex.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94370880", "jobId": "94370880", "title": "IT Manager", "salary": { "max": 15000000, "min": 13000000, "shown": true, "display": "Rp 13.000.000 – Rp 15.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "658340", "name": "Sant Group Indonesia", "profileUrl": "https://id.jobstreet.com/companies/sant-group-indonesia-168550159624082", "advertiserId": "61131393", "advertiserName": "PT Sant Group Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94370880/apply", "function": "Management", "isHybrid": false, "isOnsite": true, "isRemote": false, "isUrgent": false, "location": { "id": "2030502", "city": "Central Jakarta", "region": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-02T10:14:09.000Z", "categories": [ { "id": "6292", "label": "Management" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "information-technology-manager", "manager" ], "description": "- BPJS\n- Meal Allowance", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "On-site", "employmentTypeId": "242" } ], "limit": 5, "query": "developer", "total": 67, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "withinDays": 1 } ``` --- ### Related Searches Jobstreet Indonesia related searches — the `relatedSearchesV1` suggestion of SEEK's own `JobSearchV7` operation, rung 1 (plain `direct` POST to /graphql), ~250ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/related-searches` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | The search phrase to find related searches for. | | `location` | string | query | no | Scope the related searches to one location. | | `limit` | number | query | no | Maximum related searches. Default 12. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/related-searches?query=developer&location=Jakarta%20Raya&limit=12" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/related-searches?query=developer&location=Jakarta%20Raya&limit=12", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/related-searches?query=developer&location=Jakarta%20Raya&limit=12", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 5, "items": [ { "query": "web developer", "jobCount": 370 }, { "query": "programmer", "jobCount": 442 }, { "query": "it", "jobCount": 1254 }, { "query": "php developer", "jobCount": 203 }, { "query": "software engineer", "jobCount": 234 } ], "query": "developer", "provider": "jobstreet" } ``` --- ### Remote Jobs Jobstreet Indonesia — SEEK's `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. The rendered page is Cloudflare-challenged; /graphql is - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/remote-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — resolve one with location-suggest. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/remote-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/remote-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/remote-jobs?query=developer&location=Jakarta%20Raya&locationId=2030503&classificationId=6281&postedWithinDays=7&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://id.jobstreet.com/id/job/94341855", "jobId": "94341855", "title": "Cloud Engineer (AI Developer)", "salary": { "max": 9000000, "min": 6750000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "431495", "name": "Cemerlang Tunggal IntiKarsa", "profileUrl": "https://id.jobstreet.com/companies/cemerlang-tunggal-intikarsa-168556809495592", "advertiserId": "60907452", "advertiserName": "PT Cemerlang Tunggal Intikarsa (CTI Group Jakarta)" }, "applyUrl": "https://id.jobstreet.com/id/job/94341855/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": false, "isRemote": true, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-01T10:15:25.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "cloud-engineer", "Artificial-Intelligence-Developer", "developer", "engineer" ], "description": "Work with technical teams and customers to deliver tailored AI solutions.\nRequirements\n1–3 years of experience in Software Development, AI/ML,...", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Remote", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94339153", "jobId": "94339153", "title": "IT Research & Development", "salary": { "max": 9000000, "min": 8000000, "shown": true, "display": "Rp 8.000.000 – Rp 9.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "3705699", "name": "PT Solutionlabs Group Indonesia", "advertiserId": "63780440", "advertiserName": "PT Solutionlabs Group Indonesia" }, "applyUrl": "https://id.jobstreet.com/id/job/94339153/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": false, "isRemote": true, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-01T08:30:21.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "research-and-development-role" ], "description": "IT R&D berfokus pada riset teknologi, pengembangan solusi, inovasi, dan optimalisasi sistem.", "classification": "Information & Communication Technology", "employmentType": "Contract/Temp", "workArrangement": "Remote", "employmentTypeId": "244" }, { "url": "https://id.jobstreet.com/id/job/94326278", "jobId": "94326278", "title": "Ethical Hacker / Penetration Tester — OSINT Investigations & Digital Forensics", "salary": { "max": 18000000, "min": 16000000, "shown": true, "display": "Rp 16.000.000 – Rp 18.000.000 per month", "currency": "IDR", "interval": "monthly" }, "company": { "id": "724969", "logo": "https://bx-branding-gateway.cloud.seek.com.au/fa2281bd-332b-49c4-b9b6-e2041a134e5b.2/jdpLogo", "name": "PT Cnf Global Talenta", "advertiserId": "62373521", "advertiserName": "PT CNF Global Talenta" }, "applyUrl": "https://id.jobstreet.com/id/job/94326278/apply", "function": "Security", "isHybrid": false, "isOnsite": false, "isRemote": true, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-09-01T02:51:21.000Z", "categories": [ { "id": "6297", "label": "Security" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "penetration-tester", "tester" ], "description": "Lead hands-on penetration testing and offensive security work for an Australian managed services provider.", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Remote", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94347535", "jobId": "94347535", "title": "Cloud Engineer", "salary": { "max": 9000000, "min": 6750000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "name": "Jedi Solutions", "advertiserId": "61941078", "advertiserName": "Jedi Solutions" }, "applyUrl": "https://id.jobstreet.com/id/job/94347535/apply", "function": "Developers/Programmers", "isHybrid": false, "isOnsite": false, "isRemote": true, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-08-31T20:32:17.000Z", "categories": [ { "id": "6287", "label": "Developers/Programmers" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "cloud-engineer", "engineer" ], "description": "Familiarity with AWS or other cloud platforms; willingness to explore cloud technologies.\nJob Requirement\nEducation: , , Senior High School\nSkill:...", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Remote", "employmentTypeId": "242" }, { "url": "https://id.jobstreet.com/id/job/94284760", "jobId": "94284760", "title": "Oracle Cloud SCM Functional Consultant", "salary": { "max": 11500000, "min": 8500000, "shown": false, "currency": "IDR", "interval": "monthly" }, "company": { "id": "428677", "name": "Talent Hunts", "profileUrl": "https://id.jobstreet.com/companies/talent-hunts-168550206925616", "advertiserId": "60436236", "advertiserName": "Talent HuntPH" }, "applyUrl": "https://id.jobstreet.com/id/job/94284760/apply", "function": "Consultants", "isHybrid": false, "isOnsite": false, "isRemote": true, "isUrgent": false, "location": { "id": "2030500", "city": "Jakarta", "country": "Indonesia" }, "postedAt": "2026-08-29T01:48:38.000Z", "categories": [ { "id": "6285", "label": "Consultants" }, { "id": "6281", "label": "Information & Communication Technology" } ], "roleTitles": [ "functional-consultant", "consultant" ], "description": "- Manage and support Oracle Fusion SCM Functional Consultant\n- Implement, configure, and optimize Oracle Fusion applications to meet business...", "classification": "Information & Communication Technology", "employmentType": "Full time", "workArrangement": "Remote", "employmentTypeId": "242" } ], "limit": 5, "query": "developer", "total": 8, "hasMore": true, "nextPage": 2, "provider": "jobstreet", "workArrangement": "remote" } ``` --- ### Role Titles Jobstreet Indonesia normalised role titles — the `distinctTitleV1` facet of SEEK's own `JobSearchV7` operation, rung 1 (plain `direct` POST to /graphql), ~350ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/role-titles` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Scope the role titles to one search. Omit for the whole board. | | `location` | string | query | no | Scope the role titles to one location. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/role-titles?query=developer&location=Jakarta%20Raya" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/role-titles?query=developer&location=Jakarta%20Raya", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/role-titles?query=developer&location=Jakarta%20Raya", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 20, "items": [ { "id": "full-stack-developer", "label": "Full Stack Developer", "jobCount": 57 }, { "id": "data-engineer", "label": "Data Engineer", "jobCount": 37 }, { "id": "backend-developer", "label": "Backend Developer", "jobCount": 29 }, { "id": "backend-engineer", "label": "Backend Engineer", "jobCount": 26 }, { "id": "project-manager", "label": "Project Manager", "jobCount": 26 }, { "id": "business-development", "label": "Business Development Role", "jobCount": 26 } ], "query": "developer", "provider": "jobstreet" } ``` --- ### Search Jobstreet Indonesia job search — SEEK's own `JobSearchV7` GraphQL operation, rung 1 (plain `direct` POST to /graphql), 150-250ms measured. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:jobstreet/search` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles and descriptions. | | `location` | string | query | no | Location name as Jobstreet spells it — use location-suggest to resolve one. | | `locationId` | string | query | no | Numeric location id, an alternative to location. | | `distanceKm` | number | query | no | Radius around the location in km. 0 means exact location only. | | `classificationId` | string | query | no | Comma-separated classification or subclassification ids — see classifications. | | `employmentType` | enum(fullTime|partTime|contract|casual) | query | no | Employment type. | | `workArrangement` | enum(onsite|hybrid|remote) | query | no | Where the work is done. | | `salaryMin` | number | query | no | Lower salary bound, in the unit given by salaryType. | | `salaryMax` | number | query | no | Upper salary bound, in the unit given by salaryType. | | `salaryType` | enum(hourly|monthly|annual) | query | no | Unit the salary bounds are expressed in. Default monthly. | | `postedWithinDays` | number | query | no | Only jobs listed within this many days. | | `companyId` | string | query | no | Comma-separated organisation ids. | | `companyName` | string | query | no | Exact organisation name. | | `advertiserId` | string | query | no | Comma-separated advertiser (hiring account) ids. | | `sort` | enum(relevance|date) | query | no | Result order. Default relevance. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:jobstreet/search?query=developer&location=Jakarta%20Raya&locationId=2030503&distanceKm=25&classificationId=6281&employmentType=fullTime&workArrangement=remote&salaryMin=10000000&salaryMax=25000000&salaryType=monthly&postedWithinDays=7&companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946&sort=date&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:jobstreet/search?query=developer&location=Jakarta%20Raya&locationId=2030503&distanceKm=25&classificationId=6281&employmentType=fullTime&workArrangement=remote&salaryMin=10000000&salaryMax=25000000&salaryType=monthly&postedWithinDays=7&companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946&sort=date&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:jobstreet/search?query=developer&location=Jakarta%20Raya&locationId=2030503&distanceKm=25&classificationId=6281&employmentType=fullTime&workArrangement=remote&salaryMin=10000000&salaryMax=25000000&salaryType=monthly&postedWithinDays=7&companyId=541129&companyName=Emdee%20Skin%20Clinic&advertiserId=60863946&sort=date&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 5, "query": "developer", "total": 0, "hasMore": false, "nextPage": null, "provider": "jobstreet" } ``` --- _Generated: 2026-09-02T14:26:49.470Z_