Daemon Data

Saudi Etimad government tenders and awards as JSON feed

Saudi Etimad Tenders API is a pay-per-record Apify Actor by Daemon Data that returns Saudi government tenders from the Etimad procurement portal as JSON: agency, type, activity, region, Gregorian and Hijri deadlines, document fee, status, plus detail pages with award results (bidders, winner, amount). Keyword, agency, activity and region filters; daily only-new feed. $3 per 1,000. as JSON, CSV or Excel. It costs $0.003 per tender record with the default options ($3.00 per 1,000); no login to the source site and no proxy or browser to set up on your side, and the same input runs from the Apify console, one REST call, Python, Node.js, n8n or an AI assistant through MCP.

Daemon Data Saudi Etimad Tenders API on Apify   Listing as plain text

Checked on 9 Nov 2026

The Etimad portal listed 291,416 tenders in total. On 9 Nov 2026 the last-two-days example returned 183 new tenders (about 90 a day) with agency, activity, region, type, deadlines and document fee; a {} run returns the 50 newest in about 10 seconds. Awarded tenders add bidders, the awarded supplier and the award value.

Why teams use it

Output fields

The most useful top-level fields with values from a real record; the full list is tenderId, referenceNumber, tenderNumber, name, agency, branch, tenderType, tenderTypeEn, tenderTypeId, activity, activityId, status, statusEn, statusId, publishedAt, publishedDate, lastEnquiryDate, submissionDeadline, submissionDeadlineDate, lastEnquiryDateHijri, submissionDeadlineHijri, daysRemaining, documentFeeSar, documentsFree, financialFeesSar, invitationCostSar, buyingCostSar, isUnifiedProcurement, url, tenderIdString, source, scrapedAt, offersOpeningDate, offersOpeningDateHijri, changeType, agencyCode, insideKsa, purpose, contractDuration, contractDurationDays, insuranceRequired, submissionMethod, initialGuarantee, contractorClassification, executionLocation, executionRegions, region, regionEn, city, includesSupplyItems, activities, offersExaminationDate, expectedAwardDate, workStartDate, enquiriesStartDate, maxEnquiryResponseDays, awardType, bidders, biddersCount, lowestOfferSar, awardAnnounced, awardedSuppliers, awardedSupplier, awardTotalSar, hasDetails, awardNumber, constructionWorks, maintenanceWorks, offersOpeningPlace, previouslyDeliveredOn. Per-field notes and the OpenAPI definition are on the Apify API page.

FieldTypeExample
tenderIdnumber1118251
referenceNumberstring"261139001461"
namestring"تأمين أحتياج الأيام العالمية لزوم مستشفى الأمير سلمان بن محمد بالد...
agencystring"تجمع الرياض الصحي الأول"
branchstring"مستشفى الأمير سلمان بن محمد بالدلم"
tenderTypestring"شراء مباشر"
tenderTypeEnstring"Direct purchase"
tenderTypeIdnumber2
activitystring"خدمات النشر والطباعة والدعاية والاعلان والإنتاج الفني"
activityIdnumber801
statusstring"تم اعتماد الترسية"
statusEnstring"Award approved"
statusIdnumber15
publishedAtstring"2026-11-05T14:23:11.6166667"
publishedDatestring"2026-11-05"

Input and how to call it

Example input. Fields and pricing were checked against the public listing on 2026-11-09; this build does not run paid example searches.

{
  "publishedWithin": "2d",
  "maxItems": 50
}

One HTTP call starts a run, waits for it and returns the records (token from console.apify.com):

curl -X POST "https://api.apify.com/v2/acts/data_daemon~saudi-etimad-tenders/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"publishedWithin": "2d", "maxItems": 50}'

Python: ApifyClient(token).actor("data_daemon/saudi-etimad-tenders").call(run_input=...). Python example · Node.js example · n8n workflow. AI assistant (MCP): add the remote server https://mcp.apify.com/?tools=data_daemon/saudi-etimad-tenders with header Authorization: Bearer YOUR_APIFY_TOKEN in Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.

All input fields

FieldTypeMeaning
stagestringWhich tenders to list, as the Etimad visitor portal groups them. all (default) returns every published tender newest first (291,000 on 9 Nov 2026); open the ones still accepting offers (about 1,300); awarded the ones whose award results are published (combine with Published within 90 days and Include details for an awards feed with supplier names and amounts).
publishedWithinstringThe portal's own publication-date window. On 9 Nov 2026: 182 tenders in the last 2 days, 707 in the last week, 2,800 in the last month, 7,200 in the last 3 months. Use 2d for a daily feed.
fromDatestringOptional exact publication date range start (included), YYYY-MM-DD. The listing is read newest first and stops once it reaches older tenders. Combine with Published within = any for a backfill.
toDatestringOptional publication date range end (included), YYYY-MM-DD.
keywordsarraySearch terms, Arabic or English, matched by Etimad's own search over tender name, number and agency, e.g. صيانة, تكييف, software, CCTV. One listing query per keyword; results are merged and de-duplicated.
agenciesarrayAgency names (Arabic, as Etimad lists them, e.g. وزارة الصحة, أمانة منطقة الرياض) or 12-digit Etimad agency codes. A name is matched against the portal's agency list (up to 8 matching agencies are queried); names with more matches filter the rows by agency/branch name instead.
activitiesarrayTender activity: main activity id 1-19 or its English/Arabic name (contracting, IT, healthcare, maintenance, security, consulting, transport...), or an Etimad sub-activity id such as 601 (electricity, gas, water and HVAC supplies). One query per activity.
tenderTypesarraypublic (منافسة عامة), directPurchase (شراء مباشر), framework (اتفاقية إطارية), largeCompanies, reverseAuction, twoStage, postQualification, competition, revenueShare. Empty = all types.
regionsarrayExecution region: Riyadh, Makkah, Madinah, Qassim, Eastern Province, Asir, Tabuk, Hail, Northern Borders, Jazan, Najran, Al Bahah, Al Jouf (English, Arabic or id 1-13). Empty = all of Saudi Arabia.
documentFeestringPrice of the tender documents (booklet), a proxy for contract size. The portal answers this filter slowly (10-30 s per page).
includeDetailsbooleanAlso read each tender's public detail page: purpose, contract duration, insurance and guarantee requirements, submission method, contractor classification, execution region and city, activities, expected award and work-start dates, and the published award results (bidders with offer amounts, awarded supplier and award value). Adds one tender-details event per tender (4 requests each, about 1-2 s per tender).
maxItemsintegerMaximum tenders to save, newest first (0 = everything that matches). Each saved tender is one charged event; the default of 50 keeps a first try at about $0.15 ($0.50 with details).
onlyNewbooleanFor scheduled runs: deliver (and charge) a tender only when it is new to this State name or when its status, submission deadline, enquiry deadline, opening date or name changed since the last delivery. Each row then carries changeType (new or updated). Memory lasts 400 days.
stateNamestringName of the only-new memory. Use a different name for each independent feed.

Price

$0.003 per tender record ($3.00 per 1,000); $0.007 per tender details and award results ($7.00 per 1,000). List prices for Apify Free and Starter plans; Scale and Business plans pay 15% to 30% less.

EventPricePer 1,000Charged when
Tender record$0.003$3.00One Saudi government tender saved to the dataset (agency, type, activity, deadlines, document fee, status, link). Tenders left out by filters or unchanged in only-new mode are never charged.
Tender details and award results$0.007$7.00Charged once per saved tender whose public detail page was read (includeDetails): purpose, contract duration, guarantees, execution city, dates, bidders and award results. Not charged when the detail page is unavailable.

Cost example: 50 tender records with default options cost $0.15, including any start fee. This is an illustrative record count; set explicit row and total-charge caps for your run. Apify's free plan includes $5 of usage a month, about 1,666 tender records before start fees; the Actor's own compute is included in the per-record price, and records skipped by filters, de-duplication or only-new mode are not charged.

Ready-made example pages

Saved inputs you can run with one click on Apify (Examples tab); each has its own page:

Alternatives, honestly

OptionWhat it gives youWhere it falls short for this job
Etimad portal (tenders.etimad.sa)Official tender search and tender pagesOne search at a time in the browser; no export or daily feed of new tenders
Etimad Contracts Plus / paid tender alertsOfficial and commercial alert servicesPer-query or subscription pricing
Tender aggregator subscriptionsMulti-country tender databases with supportSubscriptions; the Etimad listings themselves are public

Published by Daemon Data (data_daemon on Apify Store). Prices, fields and example pages read from the live Apify listing on 2026-11-09; the listing is the canonical description of the Actor.