ssh.autos

Catalog / Tenders & public contracts

TENDERS & PUBLIC CONTRACTS · SAUDI ARABIA

Etimad Saudi Tenders

Search Saudi government tenders on Etimad: reference, title, agency, type, status, region, publish date, question and bid deadlines, envelope opening, document price and award results.

PER CALL · X402 / MPP From $0.03 per call 1 endpoint at api.ssh.autos. Pay in USDC, no account. See the endpoint
APIFY STORE Public actor Run it with your Apify account: bulk runs, schedules and exports. Open on Apify

About this data

Search Saudi government tenders on Etimad: reference, title, agency, type, status, region, publish date, question and bid deadlines, envelope opening, document price and award results. Filter by keyword, agency, type, status, region and date for tender alerts.

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/sa/etimad/tenders

Rows include tender references, titles, agencies and branches, tender types, publication dates, question and bid deadlines, document prices in SAR, activities and source URLs.

PRICE$0.03 per call, in USDC
RESULTUp to 10 per call
PAYMENTx402 or MPP · no account

Fetch one results page with up to 10 Etimad tenders.

Filter by keyword, reference number, tender type and status.

Envelope-opening dates and tender numbers appear when published.

No tender detail pages are requested.

Input

Send a JSON body to POST https://api.ssh.autos/v1/sa/etimad/tenders.

FieldTypeRequiredNotes
keywordstringoptionalup to 50 characters
referenceNumberstringoptionalup to 20 characters
statusstringoptionalone of any, open, closed, offersOpening, offersExamination, awarding, awarded; default "any"
tenderTypestringoptionalone of any, publicTender, directPurchase, limitedTender, reverseAuction, twoStageFirst, twoStageSecond, publicTenderOldSystem, directPurchaseOldSystem, frameworkAgreement, designContest, nationalTransformation, revenueSharing, majorCompanies; default "any"
maxResultsintegeroptional1–10; default 10

Returned fields

The answer is JSON: records, a list of up to 10, and summary, the run status and counts. Each record has these 58 fields; a field the source does not publish comes back null.

58 fields per record
FieldTypeNotes
tenderKeystringUnique key: source:tender:referenceNumber (e.g. tenders.etimad.sa:tender:261039009384). One row per tender.
referenceNumberstringEtimad reference number, e.g. '261039009384'.
tenderNumberstringAgency's own tender number as printed, e.g. '21/2026'.
tenderIdintegerEtimad numeric tender id.
agencystringGovernment agency name (Arabic as published).
agencyCodestring12-digit Etimad agency code, when published on the row.
branchstringAgency branch or procurement unit.
tenderTypestringProcurement method as published, e.g. 'منافسة عامة'.
tenderTypeEnglishstringEnglish name of the procurement method, e.g. 'Public tender'.
tenderTypeIdintegerEtimad tender type id.
statusstringTender status as published, e.g. 'معتمدة' (approved) or 'تم اعتماد الترسية' (award approved). Always filled when details are on; often empty otherwise.
statusIdintegerEtimad status id.
isOpenForBidsbooleanTrue while the bid submission deadline is still in the future.
regionsarray of stringsRegions where the work is carried out (Arabic). From the detail page when details are on; otherwise the regions you filtered on, or null.
regionsEnglisharray of stringsEnglish names of the regions, e.g. 'Riyadh', 'Eastern Province'.
insideKsabooleanTrue when the work is inside Saudi Arabia, when published on the row.
publishedAtstringPublication time, ISO 8601 with the Riyadh offset (+03:00).
questionsDeadlinestringLast day for bidder questions, ISO 8601 (+03:00).
bidDeadlinestringBid submission deadline, ISO 8601 (+03:00).
envelopeOpeningAtstringOffer (envelope) opening time, ISO 8601 (+03:00).
bidDeadlineHijristringBid deadline in the Hijri calendar, YYYY-MM-DD as published.
remainingDaysintegerWhole days left until the bid deadline (0 when closed).
documentPricenumberPrice of the tender documents (conditions booklet plus fees), SAR.
currencystringCurrency of the amounts: SAR.
activitystringTender activity as published, e.g. 'تقنية المعلومات'.
activityIdintegerEtimad activity id of the row.
isExternalPortalbooleanTrue for tenders run on a partner procurement portal; these have no public detail page, and url points to a reference search.
urlstringTender page on tenders.etimad.sa.
purposestringPurpose of the tender (details).
contractDurationstringContract duration as published, e.g. '9 أسبوع' (details).
insuranceRequiredbooleanWhether insurance is a requirement (details).
submissionMethodstringHow offers are submitted, e.g. one file for technical and financial offers (details).
initialGuaranteestringInitial guarantee requirement (details).
initialGuaranteeAddressstringWhere the initial guarantee is delivered (details).
finalGuaranteePercentnumberFinal guarantee, percent of contract value (details).
awardNumberstringAward number, when published (details).
offersExaminationAtstringOffer examination date, ISO 8601 (details).
standstillDaysintegerStandstill period in days before the award (details).
expectedAwardDatestringExpected award date, YYYY-MM-DD (details).
workStartDatestringExpected start of works or services, YYYY-MM-DD (details).
questionsStartDatestringFirst day for bidder questions, YYYY-MM-DD (details).
maxAnswerDaysintegerMaximum days for the agency to answer questions (details).
openingPlacestringWhere offers are opened (details).
classificationFieldstringRequired contractor classification field (details).
executionPlacestringInside or outside Saudi Arabia (details).
citiesarray of stringsCities where the work is carried out (details).
executionDetailsstringExtra notes on the execution place (details).
activitiesarray of stringsTender activities (details).
includesSupplyItemsbooleanWhether the tender includes supply items (details).
constructionWorksarray of stringsConstruction works listed (details).
maintenanceWorksarray of stringsMaintenance and operation works listed (details).
biddersarray of objectsSuppliers that submitted offers, for tenders at the award stage (details).
awardedSuppliersarray of objectsAwarded suppliers with offer and award values (details).
awardedValuenumberTotal award value, SAR (details, awarded tenders).
detailsErrorstringWhy details could not be read for this tender, when details are on.
sourceQuerystringThe filters this run searched, or 'latest'.
sourcestringSource site (tenders.etimad.sa).
scrapedAtstringUTC ISO 8601 collection time.

Example call

TERMINAL · $0.03 PER RUN
npx agentcash@latest fetch https://api.ssh.autos/v1/sa/etimad/tenders -m POST -b '{"maxResults": 10}'

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

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: Etimad Saudi Tenders Scraper. 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.

Open on Apify

How x402 payment works

  1. Your client sends the request. The API answers 402 Payment Required with the price and where to pay.
  2. 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.
  3. 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

Some links to Apify are affiliate links. We may earn a commission if you sign up and become a paying customer.