Catalog / Tenders & public contracts
TENDERS & PUBLIC CONTRACTS · JORDAN
Jordan JONEPS Tenders | Government Tenders
Scrape Jordan government tenders from JONEPS by keyword, type, status, closing date or tender number.
About this data
Scrape Jordan government tenders from JONEPS by keyword, type, status, closing date or tender number. One row per invitation with Arabic title, procuring entity, publication and closing dates, stage and document links; English title when published. Daily new-only feed.
From the actor’s Apify Store listing. The per-call endpoint may return a bounded subset; its own description is below.
Buy per call over x402
One endpoint at api.ssh.autos. Each call is one JSON POST, paid in USDC with no account or API key, and answered in the same HTTP response.
POST /v1/jo/joneps/tenders
Jordan government tenders from JONEPS: tender number, title, procuring entity, type, status, and publication and closing dates.
Input
Send a JSON body to POST https://api.ssh.autos/v1/jo/joneps/tenders.
| Field | Type | Required | Notes |
|---|---|---|---|
keyword | string | optional | up to 200 characters |
maxItems | integer | optional | 1–10; default 5 |
Returned fields
The answer is JSON: records, a list of up to 10, and summary, the run status and counts. Each record has these 23 fields; a field the source does not publish comes back null.
23 fields per record
| Field | Type | Notes |
|---|---|---|
tenderNumber | string | Tender number with its sequence suffix, e.g. '2026004468-00'. |
tendNo | string | JONEPS tender root number, e.g. '2026004468'. |
tendSeq | string | JONEPS tender sequence, e.g. '00'. |
titleEnglish | string | English tender name only when JONEPS publishes an English value that differs from the Arabic title. |
procuringEntity | string | Procuring government entity name as published. |
procuringEntityCode | string | JONEPS entity code from the detail page, when published. |
publishedAt | string | Publication time, ISO 8601 with the Jordan offset (+03:00) when a time is published; date-only when only the list date is known. |
closingAt | string | Offer submission deadline, ISO 8601 with the Jordan offset (+03:00) when a time is published; date-only when only the list date is known. |
questionsDeadline | string | Last time for bidder questions, ISO 8601 (+03:00), when published. |
openingAt | string | Offer opening time, ISO 8601 (+03:00), when published. |
status | string | Status as published, e.g. 'نشر دعوة عطاء' or the current list stage. |
stage | string | Tender stage as published, e.g. 'دعوة عطاء'. |
tenderType | string | Main tender type as published, e.g. 'خدمات'. |
tenderSubType | string | Tender sub-type as published, e.g. 'خدمات صيانة'. |
procurementMethod | string | Procurement method as published, e.g. 'المناقصة العامة'. |
estimatedValue | number | Reserved for a published estimated tender value; null in this build because no sampled page printed one. |
currency | string | Reserved for the currency printed with estimatedValue; null in this build because no currency is parsed. |
documents | array of objects | Attached documents with stable JONEPS download links; null when details were not read, [] when none are attached. |
url | string | Public JONEPS ServiceDetails page for this tender. |
detailIssue | string | Why detail fields are incomplete for this row, when a detail fragment failed or was skipped near the run deadline. |
sourceQuery | string | The filters this run searched, or 'latest'. |
source | string | Source site (www.joneps.gov.jo). |
scrapedAt | string | UTC collection time, ISO 8601. |
Example call
npx agentcash@latest fetch https://api.ssh.autos/v1/jo/joneps/tenders -m POST -b '{"maxItems": 3}'
The example values come from the API spec or the actor’s own sample input. Running it is a paid call.
What is and isn’t charged
You pay the call price for
- An answer, including a definitive “not found” or an empty result.
- Confirmed no matches returns records: [] (charged: it is an answer).
Free
- Invalid input (422), busy (503), source failure (502), timeout (504) and calls whose client hung up are never charged.
- Invalid input and source failures are not charged.
Prefer a subscription? Run it on Apify
This data source is a public actor on the Apify Store: Jordan JONEPS Tenders Scraper | Government Tenders. Run it with your Apify account and plan for larger, scheduled or exported runs; it may offer more input options than the per-call endpoint.
How x402 payment works
- Your client sends the request. The API answers
402 Payment Requiredwith the price and where to pay. - The client pays from its own wallet: USDC on Base or Solana over x402, or over MPP on Tempo. No account, sign-up or API key.
- The client retries with the payment attached and gets the JSON answer in the same call. You are only charged for answers.
The AgentCash CLI in the example does all three steps for you and pays from your AgentCash wallet. Any x402 or MPP client works the same way.
Machine-readable: openapi.json · llms.txt