Discover/SAP API
live

SAP APIbusiness.network.sap.com ↗

Search and retrieve public procurement opportunities on SAP Business Network Discovery. Filter by budget, date, and keyword. No login required.

Endpoint health
verified 2h ago
search_opportunities
get_opportunity
2/2 passing latest checkself-healing
Endpoints
2
Updated
1h ago

What is the SAP API?

The SAP Business Network Discovery API exposes 2 endpoints that cover publicly listed procurement opportunities (sourcing leads) on SAP's B2B procurement platform. Use search_opportunities to query and paginate through live RFx postings filtered by keyword, budget range, and posting date, then call get_opportunity to retrieve full notice details including UNSPSC category codes, buyer organisation name, budget bounds, and key dates.

This call costs1 credit / call— charged only on success
Try it
1-based page number.
Result ordering.
Free-text search over title, description and categories. Empty browses all leads.
Results per page, 1 to 50; larger values are clamped to 50.
Only leads whose budget is at most this amount. Omitted = no upper bound.
Only leads whose budget upper bound is at least this amount. Omitted = no lower bound.
ISO date YYYY-MM-DD; only leads posted on or after this day (UTC).
ISO date YYYY-MM-DD; only leads posted on or before this day (UTC).
ISO date YYYY-MM-DD; only leads whose response deadline is on or after this day (UTC).
ISO date YYYY-MM-DD; only leads whose response deadline is on or before this day (UTC). When omitted, the current UTC date is used, so only leads closing on or before today are returned.
When true, each result is enriched with the detail-only fields of get_opportunity at the cost of one extra request per result.
→ api.parse.bot/scraper/2607b74f-b324-4ea0-ab71-0e5038ee0db5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/2607b74f-b324-4ea0-ab71-0e5038ee0db5/search_opportunities?sort=RELEVANCE&query=software&deadline_before=2036-09-22' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Searches the publicly visible procurement opportunities (sourcing leads) on SAP Business Network Discovery. One round trip returns one page of opportunity summaries plus the total match count and a breakdown of matches by budget range. All optional filters combine (AND). Pagination is page-number based: `page` (default 1) and `page_size` (default 10, clamped to 50) are the caller's paging inputs, and `has_more` tells whether a further page exists. `query` defaults to an empty string, which browses all leads. `deadline_before` defaults to the current UTC date, so a call that omits it returns only leads whose response deadline falls on or before today (the site lists only leads that are still open, so this is typically a small set of leads closing today); pass a later date, e.g. 2030-12-31, to see every open lead. When `include_details` is true the full public notice is fetched for every result on the page (one extra round trip per result, so up to 50 extra requests for a 50-row page) and the detail-only fields of get_opportunity (status, buyer_display_name, buyer_account_type, buyer_badge, external_reference, currency, is_exact_amount, last_modified, award_date, contact_name, physical_presence_preferred, humanitarian_aid, certificate_preferences, keywords, attachment_count, view_count, response_count, public_posting_url) are merged into each result; fields already present in the summary keep their summary form, except that a null summary buyer_name is filled from the notice. `details_fetched` and `detail_errors` (rfx_id plus error label for each notice that could not be fetched) report the fan-out coverage and are present only when include_details is true. Every lead currently exposed publicly carries lead_type RFI regardless of the notice's actual RFP/RFQ nature stated in the title. Summary amounts are shown as displayed by the site; `description_html` is the buyer's rich-text notice as HTML. A query with no matches returns total_results 0 and an empty results array.

Input
ParamTypeDescription
pageinteger1-based page number.
sortstringResult ordering.
querystringFree-text search over title, description and categories. Empty browses all leads.
page_sizeintegerResults per page, 1 to 50; larger values are clamped to 50.
max_amountnumberOnly leads whose budget is at most this amount. Omitted = no upper bound.
min_amountnumberOnly leads whose budget upper bound is at least this amount. Omitted = no lower bound.
posted_afterstringISO date YYYY-MM-DD; only leads posted on or after this day (UTC).
posted_beforestringISO date YYYY-MM-DD; only leads posted on or before this day (UTC).
deadline_afterstringISO date YYYY-MM-DD; only leads whose response deadline is on or after this day (UTC).
deadline_beforestringISO date YYYY-MM-DD; only leads whose response deadline is on or before this day (UTC). When omitted, the current UTC date is used, so only leads closing on or before today are returned.
include_detailsbooleanWhen true, each result is enriched with the detail-only fields of get_opportunity at the cost of one extra request per result.
Response
{
  "type": "object",
  "fields": {
    "page": "page number returned",
    "query": "echo of the search text used",
    "results": "array of opportunity summaries: rfx_id (string, use with get_opportunity), title, lead_type, buyer_name (often null in summaries unless include_details fills it), description_html, min_amount/max_amount (numbers), contract_length_months (integer or null), date_posted/start_date/response_deadline (ISO 8601 UTC), public_sector (boolean), categories (array of category name strings), service_locations (array of location name strings); with include_details=true each row also carries the detail-only get_opportunity fields (status, buyer_display_name, buyer_account_type, buyer_badge, external_reference, currency, is_exact_amount, last_modified, award_date, contact_name, physical_presence_preferred, humanitarian_aid, certificate_preferences, keywords, attachment_count, view_count, response_count, public_posting_url)",
    "has_more": "true when page * page_size < total_results",
    "page_size": "effective page size after clamping",
    "detail_errors": "only with include_details=true: array of {rfx_id, error} for results whose notice could not be fetched (empty when all succeeded)",
    "total_results": "total number of matching leads on the site for these filters",
    "details_fetched": "only with include_details=true: number of results whose notice was fetched and merged",
    "counts_by_amount_range": "object mapping site budget-range labels (e.g. \"1K ~ 10K\") to match counts"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "",
      "results": [
        {
          "title": "E6TOR-23RM04 Light Construction Equipment Rental",
          "rfx_id": "16583696",
          "status": "Published",
          "currency": "CAD",
          "keywords": [],
          "lead_type": "RFI",
          "award_date": null,
          "buyer_name": "Government of Canada / Gouvernement du Canada",
          "categories": [
            "Power drills",
            "Impact wrenches",
            "Power nail guns"
          ],
          "max_amount": 74341067.81,
          "min_amount": 750.92,
          "start_date": "2023-06-14T15:14:11Z",
          "view_count": 616,
          "buyer_badge": "WALK_UP",
          "date_posted": "2023-06-14T15:14:11Z",
          "contact_name": null,
          "last_modified": "2023-06-15T17:07:27Z",
          "public_sector": true,
          "response_count": 11,
          "is_exact_amount": false,
          "attachment_count": 0,
          "description_html": "<p><strong>Offerors may submit an offer at any point during the solicitation period.</strong></p>",
          "humanitarian_aid": "None",
          "response_deadline": "2028-06-30T18:00:00Z",
          "service_locations": [
            "Ontario"
          ],
          "buyer_account_type": "ENTERPRISE",
          "buyer_display_name": "Government of Canada / Gouvernement du Canada",
          "external_reference": "Doc4053526199",
          "public_posting_url": "https://portal.us.bn.cloud.ariba.com/dashboard/public/appext/comsapsbncdiscoveryui#/RfxEvent/preview/16583696?anId=ANONYMOUS",
          "contract_length_months": null,
          "certificate_preferences": [],
          "physical_presence_preferred": false
        }
      ],
      "has_more": true,
      "page_size": 5,
      "detail_errors": [],
      "total_results": 1297,
      "details_fetched": 5,
      "counts_by_amount_range": {
        "< 1K": 965,
        ">= 5M": 29,
        "1M ~ 5M": 18,
        "1K ~ 10K": 116,
        "10K ~ 50K": 34,
        "500K ~ 1M": 20,
        "50K ~ 100K": 31,
        "100K ~ 500K": 45
      }
    },
    "status": "success"
  }
}

About the SAP API

What the API covers

SAP Business Network Discovery is SAP's platform where buyers post public sourcing leads — RFIs and similar procurement notices — to solicit supplier responses. This API surfaces the public-facing subset of that data across two endpoints, returning structured fields for each opportunity without requiring an account or session.

search_opportunities

This endpoint accepts up to eight optional filter parameters. query runs a free-text search over title, description, and categories. min_amount and max_amount bound the budget field. posted_after and posted_before accept ISO dates (YYYY-MM-DD) to restrict by posting day. page and page_size (1–50, clamped) control pagination; the has_more flag and total_results count tell you how many pages remain. Each result in results includes an rfx_id string, a title, a lead_type, and a buyer_name (which is often null at the summary level). The counts_by_amount_range object breaks total matches into site-labelled budget buckets such as "1K ~ 10K".

get_opportunity

Pass any rfx_id from the search results to retrieve the complete notice. The response includes buyer_name, status (e.g. Published), currency, max_amount, award_date, lead_type, keywords (buyer-added tags), and a categories array of objects each carrying a unspsc_code and human-readable name. UNSPSC codes let you map leads to standardised commodity classifications for analysis or routing.

Scope and freshness

Both endpoints reflect the public Discovery feed — only notices that buyers have made visible without login are accessible. Private or restricted postings, supplier profiles, transaction history, and awarded contract data are not part of the public feed and are not returned.

Reliability & maintenanceVerified

The SAP API is a managed, monitored endpoint for business.network.sap.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when business.network.sap.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official business.network.sap.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor new RFx postings in specific commodity categories using UNSPSC codes from get_opportunity
  • Alert sales teams when a buyer in their target sector posts a sourcing lead matching a keyword
  • Aggregate counts_by_amount_range data to track procurement volume trends across budget tiers
  • Filter opportunities by posted_after and max_amount to surface recent small-budget leads for SME suppliers
  • Build a supplier-facing dashboard that maps open leads to internal product categories using UNSPSC classification
  • Track how many total_results exist for a given query over time to gauge market demand for a category
  • Enrich a CRM with buyer_name and award_date fields when a matched opportunity closes
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does SAP Business Network have an official developer API?+
Yes. SAP provides official APIs for Business Network through the SAP API Business Hub at api.sap.com. Those APIs require SAP credentials and a registered supplier or buyer account. This Parse API covers only the public-facing Discovery feed and requires no credentials.
What does get_opportunity return beyond what search_opportunities already shows?+
The search endpoint returns a summary per lead — rfx_id, title, lead_type, and an often-null buyer_name. get_opportunity fills in the full record: confirmed buyer_name, status, ISO currency code, max_amount as a number, award_date, a buyer-added keywords array, and a categories array with UNSPSC codes and names. For any lead you want to evaluate in detail, the full notice is only available from get_opportunity.
Are private or login-required opportunities included?+
No. The API returns only notices that SAP Business Network makes visible to unauthenticated visitors. Restricted leads, private RFQs, and supplier-matched opportunities that require a login are not returned. You can fork the API on Parse and revise it to add authenticated endpoints if you have valid SAP Business Network credentials.
Can I retrieve awarded contract details or supplier responses to a lead?+
Not currently. The API covers opportunity discovery — the notice itself, buyer details, budget, dates, and UNSPSC categories. Awarded contract records, supplier bids, and response history are not part of the public feed. You can fork this API on Parse and revise it to add an endpoint targeting any public award-notice data if SAP surfaces that separately.
How does pagination work and what is the maximum page size?+
search_opportunities accepts a 1-based page parameter and a page_size between 1 and 50. Values above 50 are clamped to 50. The response includes total_results and has_more so you can determine how many pages exist and whether to fetch the next one. There is no cursor-based or offset-based alternative; page number is the only navigation mechanism.
Page content last updated . Spec covers 2 endpoints from business.network.sap.com.
Related APIs in B2b DirectorySee all →
purchasing.alberta.ca API
Access data from purchasing.alberta.ca.
eprocurement-sfd.uae.app.jaggaer.com API
Monitor and retrieve current procurement opportunities from the Sharjah Government Finance Department, including detailed information about each tender and project listing. Browse available bids to identify and track business opportunities in the Sharjah region.
buy.nsw.gov.au API
Search and retrieve NSW Government tender opportunities and contract notices from buy.nsw, including detailed information about available opportunities, supplier hubs, and procurement categories. Filter opportunities by category and discover top procurement deals in real-time to stay informed about potential business contracts with the NSW Government.
opportunities.bidsandtenders.com API
Search and filter public bid opportunities by keywords, status, organization, publish date, and bid type, then retrieve comprehensive details including descriptions, key dates, meetings, and related documents for any listing. Access a complete view of available tender opportunities with sorting and pagination to easily find the bids most relevant to your business.
nbon-rpanb.gnb.ca API
Access data from nbon-rpanb.gnb.ca.
bidsandtenders.com API
Search and discover public bid opportunities across Canada and the USA to find relevant procurement projects for your business. Access real-time tender data from the bids&tenders eProcurement platform to identify and pursue new contract opportunities.
mohawkmedbuy.ca API
Access data from mohawkmedbuy.ca.
biddingo.com API
Search and filter government procurement bids and RFPs across different regions and categories to find relevant opportunities. Access detailed project descriptions and bid information to help you discover and evaluate contracting opportunities that match your business needs.