{"openapi":"3.1.0","info":{"title":"Discer API","description":"\nRead-only access to Discer data for **Team plan** accounts: open public tenders\n(SEAO and other Canadian sources), tender intelligence (win probability, winning price\nranges, expected bidders and their bid probability, competitiveness, price position, buyer\nhistory, amendments), concluded tenders with their bidders and prices, subcontracting\nopportunities, private tenders published on Discer, your Pipeline (followed tenders, addenda,\nclosing changes, results), upcoming renewals, company and buyer profiles, and your market.\nThe same data is available to AI agents through the MCP server at `https://api.discer.ca/mcp`.\nGuide, examples and MCP setup: https://discer.ca/en/api.\n\n### Authentication\nThe account owner creates a key in **Settings → API and MCP** (Team plan). Send it on every request:\n\n```\ncurl \"https://api.discer.ca/api/v1/tenders?q=pavage\" \\\n  -H \"Authorization: Bearer dsk_live_YOUR_KEY\"\n```\n\n### Conventions\n- Successful responses: `{\"data\": ...}`; lists add `pagination`.\n- Timestamps: ISO 8601 with UTC offset. Date filters (`published_after`, `closing_before`…):\n  calendar days in Québec time (America/Toronto); `_after` is inclusive, `_before` exclusive.\n- Amounts: Canadian dollars, as published. Fields ending in `_2026_dollars` are indexed to 2026 dollars.\n- Statistics are figures `{\"value\", \"n\", \"period\": {\"from\", \"to\"}, \"source\"}`: cite them with `n` and the period.\n- Explanatory notes (`note`, `definition`), labels and some enumerated values are in French.\n- Figures, probabilities and price positions are information calculated from past tenders: never a\n  recommendation or a guarantee. The bid price remains your decision.\n\n### Limits (per account, all keys and the MCP server combined)\nDiscer is built for teams that prepare their own bids, not for copying its database.\n\n| | per day | per month |\n|---|---|---|\n| Requests (API + MCP), also 60 per minute | 2,000 | 30,000 |\n| Distinct tender records (`/tenders/{id}`, intelligence) | 300 | 3,000 |\n| Distinct company profiles | 200 | 2,000 |\n| Distinct buyer profiles | 100 | 600 |\n| List rows returned | 5,000 | 60,000 |\n\nA record already viewed this month does not count again. At most 3 active keys per account.\nOver a limit: `429` with `Retry-After` (seconds). Days and months follow Québec time.\nSystematic patterns (records requested in sequence, deep paging) slow the account down, then pause it,\nthen suspend its keys pending review (`403 api_key_suspended`).\n\n### Terms of use\nSystematic extraction, resale, rebuilding a database and training machine-learning models with\nDiscer data are prohibited: see https://discer.ca/conditions#extraction. You accept these terms\nwhen you create a key.\n\n### Pagination\nList endpoints return `pagination.next_cursor`; pass it back as `cursor` with the same filters.\n`limit` is 1 to 100 (default 50). At most 1,000 results per filtered query: narrow the filters\nto go further. `/tenders` and `/renewals` require at least one filter.\n\n### Errors\n`{\"error\": {\"code\": \"...\", \"message\": \"...\", \"details\": {...}}}`\n\n| HTTP | code | meaning |\n|---|---|---|\n| 401 | `missing_api_key` | No `Authorization: Bearer` header. |\n| 401 | `invalid_api_key` | Unknown or malformed key. |\n| 401 | `revoked_api_key` | The key was revoked in Settings. |\n| 402 | `plan_required` | The account is not on the Team plan, or its subscription is inactive. |\n| 402 | `subscription_paused` | The subscription is paused: access resumes with it. |\n| 402 | `first_payment_required` | Trial period: the API and MCP server open with the first payment. |\n| 403 | `api_key_suspended` | The key is suspended pending review after unusual usage. |\n| 403 | `account_under_review` | API, MCP, assistant and exports are paused pending review. |\n| 403 | `account_disabled` | The account is disabled. |\n| 404 | `not_found` | Unknown tender, company, buyer, watch profile or path. |\n| 405 | `method_not_allowed` | HTTP method not supported on this path. |\n| 409 | `profile_inactive` | This watch profile is inactive on the current plan. |\n| 409 | `profile_incomplete` | `for_me` needs a watch profile with categories or keywords. |\n| 422 | `invalid_parameter` | A parameter is missing or invalid (`details.errors` lists them). |\n| 422 | `invalid_cursor` | The cursor is malformed or was issued for other filters. |\n| 422 | `filter_required` | `/tenders` and `/renewals` need at least one filter. |\n| 422 | `pagination_limit` | Paging stops after the result cap of a filtered query: narrow the filters. |\n| 429 | `rate_limited` | Too many requests in the last minute. |\n| 429 | `quota_exceeded` | Daily or monthly request cap reached. |\n| 429 | `entity_quota_exceeded` | Daily or monthly cap of distinct records reached. |\n| 429 | `row_quota_exceeded` | Daily or monthly cap of list rows reached. |\n| 429 | `temporarily_blocked` | Access paused for 24 hours after unusual usage. |\n| 500 | `internal_error` | Unexpected server error: try again; write to thomas@contact.discer.ca if it persists. |\n| 503 | `not_ready` | Renewals are being computed: try again later. |\n\n### Data\nPublic procurement data (SEAO, Données Québec, CanadaBuys, City of Toronto) and private tenders published on\nDiscer. Bidding companies are named as published; no personal contact data is ever returned (the contact of\nan awarded tender's winner and a private buyer's representative are read in Discer only).\n","version":"1.2.0"},"paths":{"/me":{"get":{"tags":["account"],"summary":"Your account, plan and API key","description":"The account the key belongs to, its plan and the key's scopes. Use it to test a key.","operationId":"get_me","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/tenders":{"get":{"tags":["tenders"],"summary":"Search open tenders","description":"Tenders open today. At least one filter is required. `_after` dates are inclusive and\n`_before` dates exclusive. Each returned row counts toward the account's list rows.","operationId":"list_tenders","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Words in the title or buyer name, e.g. `pavage`.","title":"Q"},"description":"Words in the title or buyer name, e.g. `pavage`."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"enum":["seao","canadabuys","toronto"],"type":"string"},{"type":"null"}],"description":"Source of the tender.","title":"Source"},"description":"Source of the tender."},{"name":"province","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"ISO province code (QC, ON…), repeatable. Canada-wide tenders are included.","title":"Province"},"description":"ISO province code (QC, ON…), repeatable. Canada-wide tenders are included."},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Québec administrative region code (1-17), repeatable.","title":"Region"},"description":"Québec administrative region code (1-17), repeatable."},{"name":"unspsc","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{2,8}$"},{"type":"null"}],"description":"UNSPSC code prefix, 2 to 8 digits, e.g. `7214`.","title":"Unspsc"},"description":"UNSPSC code prefix, 2 to 8 digits, e.g. `7214`."},{"name":"buyer","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Part of the buyer name, e.g. `Ville de Lévis`.","title":"Buyer"},"description":"Part of the buyer name, e.g. `Ville de Lévis`."},{"name":"published_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto).","title":"Published After"},"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto)."},{"name":"published_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto).","title":"Published Before"},"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto)."},{"name":"closing_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto).","title":"Closing After"},"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto)."},{"name":"closing_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto).","title":"Closing Before"},"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto)."},{"name":"profile","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"description":"Watch profile id (`principal` or an id from /watch-profiles): adds `relevance` and ranks by score; `sort` is then ignored.","title":"Profile"},"description":"Watch profile id (`principal` or an id from /watch-profiles): adds `relevance` and ranks by score; `sort` is then ignored."},{"name":"sort","in":"query","required":false,"schema":{"enum":["closing_asc","published_desc"],"type":"string","description":"`closing_asc`: closing soonest first; `published_desc`: newest first.","default":"closing_asc","title":"Sort"},"description":"`closing_asc`: closing soonest first; `published_desc`: newest first."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size, 1 to 100.","default":50,"title":"Limit"},"description":"Page size, 1 to 100."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"`pagination.next_cursor` from the previous page. Send the same filters with it.","title":"Cursor"},"description":"`pagination.next_cursor` from the previous page. Send the same filters with it."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenderPage"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/tenders/{tender_id}":{"get":{"tags":["tenders"],"summary":"Tender detail with its intelligence","description":"Tender facts and, for SEAO tenders, its intelligence: key facts, win probability (when\ncalibrated), winning price range (same sub-category when available), expected bidders and their\nbid probability, competitiveness and price position (open tenders), buyer history for this\nUNSPSC category, amendments.\nCounts as one distinct tender record for the account's daily and monthly limits.","operationId":"get_tender","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"string","maxLength":40,"description":"Tender `id` from /tenders: SEAO number, or CB-…, TOR-… for other sources.","title":"Tender Id"},"description":"Tender `id` from /tenders: SEAO number, or CB-…, TOR-… for other sources."},{"name":"intelligence","in":"query","required":false,"schema":{"type":"boolean","description":"Include the intelligence block (SEAO tenders).","default":true,"title":"Intelligence"},"description":"Include the intelligence block (SEAO tenders)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenderDetailResponse"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/bids":{"get":{"tags":["my-data"],"summary":"Your Pipeline (tenders by stage)","description":"Cards of the account's Pipeline, discarded cards excluded: stage, bid price, relevance, followed\ntenders and their news (addenda, closing changes, published result). Does not count toward list rows.","operationId":"list_bids","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["to_evaluate","preparing","submitted","won","lost"],"type":"string"},{"type":"null"}],"description":"Pipeline stage.","title":"Status"},"description":"Pipeline stage."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size, 1 to 100.","default":50,"title":"Limit"},"description":"Page size, 1 to 100."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"`pagination.next_cursor` from the previous page. Send the same filters with it.","title":"Cursor"},"description":"`pagination.next_cursor` from the previous page. Send the same filters with it."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BidPage"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/watch-profiles":{"get":{"tags":["my-data"],"summary":"Watch profiles (use their id in /tenders?profile=)","description":"The account's watch profiles: UNSPSC categories, keywords, regions, value range.","operationId":"list_watch_profiles","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchProfilesResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/renewals":{"get":{"tags":["market"],"summary":"Upcoming renewals (contracts ending soon, with incumbents)","description":"Contracts from past tenders (not sole-source) whose expected end falls within the horizon,\nwith their incumbents; your company's contracts first (`is_you`). A new call for tenders is not\nconfirmed. At least one of `family`, `region`, `buyer_id` or `for_me` is required. Each\nreturned row counts toward the account's list rows.","operationId":"list_renewals","security":[{"HTTPBearer":[]}],"parameters":[{"name":"family","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{2,4}$"},{"type":"null"}],"description":"UNSPSC prefix, 2 or 4 digits, e.g. `7214`.","title":"Family"},"description":"UNSPSC prefix, 2 or 4 digits, e.g. `7214`."},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":17,"minimum":1},{"type":"null"}],"description":"Québec administrative region code (1-17).","title":"Region"},"description":"Québec administrative region code (1-17)."},{"name":"buyer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Buyer id from /buyers.","title":"Buyer Id"},"description":"Buyer id from /buyers."},{"name":"horizon_months","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"description":"Contracts whose expected end falls within N months.","default":12,"title":"Horizon Months"},"description":"Contracts whose expected end falls within N months."},{"name":"for_me","in":"query","required":false,"schema":{"type":"boolean","description":"Only your niche (watch profile categories, keywords and regions), as on the Renewals page.","default":false,"title":"For Me"},"description":"Only your niche (watch profile categories, keywords and regions), as on the Renewals page."},{"name":"all_regions","in":"query","required":false,"schema":{"type":"boolean","description":"With `for_me` and an all-Québec profile with priority regions: all of Québec instead of the priority regions.","default":false,"title":"All Regions"},"description":"With `for_me` and an all-Québec profile with priority regions: all of Québec instead of the priority regions."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size, 1 to 100.","default":50,"title":"Limit"},"description":"Page size, 1 to 100."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"`pagination.next_cursor` from the previous page. Send the same filters with it.","title":"Cursor"},"description":"`pagination.next_cursor` from the previous page. Send the same filters with it."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewalPage"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"}}}},"/companies":{"get":{"tags":["market"],"summary":"Find companies by name or NEQ","description":"Companies that bid on SEAO, matched by name (accents, case and legal suffixes ignored) or NEQ,\nat most 10. Each match counts toward the account's list rows.","operationId":"search_companies","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":80,"description":"Part of the company name, or the start of its NEQ (3 to 10 digits).","title":"Q"},"description":"Part of the company name, or the start of its NEQ (3 to 10 digits)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyMatches"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/companies/{neq}":{"get":{"tags":["market"],"summary":"Company profile (SEAO bidding history)","description":"Bids, wins, win rate, top buyers, UNSPSC categories, regions, main opponents with head-to-head,\nrecent bids with prices, strength in its market, amendments of its contracts. Counts as one\ndistinct company profile.","operationId":"get_company","security":[{"HTTPBearer":[]}],"parameters":[{"name":"neq","in":"path","required":true,"schema":{"type":"string","description":"Québec enterprise number, 10 digits.","title":"Neq"},"description":"Québec enterprise number, 10 digits."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyResponse"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/buyers":{"get":{"tags":["market"],"summary":"Find public buyers by name","description":"Public buyers (cities, ministries, school boards…), most active first, at most 10.\nEach match counts toward the account's list rows.","operationId":"search_buyers","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120,"description":"Part of the buyer name, e.g. `Ville de Québec`.","title":"Q"},"description":"Part of the buyer name, e.g. `Ville de Québec`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyerMatches"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/buyers/{buyer_id}":{"get":{"tags":["market"],"summary":"Buyer profile (purchases, winners, prices, sole-source, amendments)","description":"Purchases by UNSPSC category over 5 years, top winners, price ranges, market presence,\nsole-source contracts and amendments. Counts as one distinct buyer profile.","operationId":"get_buyer","security":[{"HTTPBearer":[]}],"parameters":[{"name":"buyer_id","in":"path","required":true,"schema":{"type":"integer","description":"Buyer id from /buyers.","title":"Buyer Id"},"description":"Buyer id from /buyers."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyerResponse"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/market":{"get":{"tags":["market"],"summary":"Your market report (your company's SEAO record, competitors, lost tenders)","description":"Market report of the account's company: niche, figures, competitors, lost tenders. `report` is\nnull when the account has no company NEQ; an unverified NEQ gets the public-level report.","operationId":"get_market","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/concluded-tenders":{"get":{"tags":["concluded"],"summary":"Search concluded tenders (winners, amounts, bidders)","description":"SEAO tenders concluded since 2015, as on the History page: winner, winning amount, number of\nbidders, gap between the two lowest submitted prices, your own result. At least one filter is\nrequired. `_after` dates are inclusive and `_before` dates exclusive (conclusion date, otherwise\npublication date). Each returned row counts toward the account's list rows.","operationId":"list_concluded_tenders","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Words in the title, e.g. `pavage`.","title":"Q"},"description":"Words in the title, e.g. `pavage`."},{"name":"unspsc","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{2}(\\d{2})?$"},{"type":"null"}],"description":"UNSPSC category (4 digits) or segment (2 digits), e.g. `7214`.","title":"Unspsc"},"description":"UNSPSC category (4 digits) or segment (2 digits), e.g. `7214`."},{"name":"buyer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Buyer id from /buyers.","title":"Buyer Id"},"description":"Buyer id from /buyers."},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":17,"minimum":1},{"type":"null"}],"description":"Québec administrative region code (1-17).","title":"Region"},"description":"Québec administrative region code (1-17)."},{"name":"concluded_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto).","title":"Concluded After"},"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto)."},{"name":"concluded_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto).","title":"Concluded Before"},"description":"Calendar date YYYY-MM-DD, Québec time (America/Toronto)."},{"name":"min_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Minimum winning amount. Canadian dollars.","title":"Min Amount"},"description":"Minimum winning amount. Canadian dollars."},{"name":"max_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Maximum winning amount. Canadian dollars.","title":"Max Amount"},"description":"Maximum winning amount. Canadian dollars."},{"name":"company","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{10}$"},{"type":"null"}],"description":"NEQ of a company that bid (or won, with `role=won`).","title":"Company"},"description":"NEQ of a company that bid (or won, with `role=won`)."},{"name":"role","in":"query","required":false,"schema":{"enum":["bid","won"],"type":"string","description":"With `company`: tenders it bid on, or won.","default":"bid","title":"Role"},"description":"With `company`: tenders it bid on, or won."},{"name":"mine","in":"query","required":false,"schema":{"type":"boolean","description":"Only tenders your company bid on (verified NEQ).","default":false,"title":"Mine"},"description":"Only tenders your company bid on (verified NEQ)."},{"name":"min_bidders","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Minimum number of bidders.","title":"Min Bidders"},"description":"Minimum number of bidders."},{"name":"max_bidders","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Maximum number of bidders.","title":"Max Bidders"},"description":"Maximum number of bidders."},{"name":"prices","in":"query","required":false,"schema":{"anyOf":[{"enum":["with","without"],"type":"string"},{"type":"null"}],"description":"`with`: all prices published; `without`: prices not published.","title":"Prices"},"description":"`with`: all prices published; `without`: prices not published."},{"name":"sort","in":"query","required":false,"schema":{"enum":["recent","amount","gap"],"type":"string","description":"`recent` first, highest `amount` first, or largest `gap` between the two lowest submitted prices first.","default":"recent","title":"Sort"},"description":"`recent` first, highest `amount` first, or largest `gap` between the two lowest submitted prices first."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Page size, 1 to 50.","default":25,"title":"Limit"},"description":"Page size, 1 to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"`pagination.next_cursor` from the previous page. Send the same filters with it.","title":"Cursor"},"description":"`pagination.next_cursor` from the previous page. Send the same filters with it."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcludedTenderPage"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"}}}},"/concluded-tenders/{tender_id}":{"get":{"tags":["concluded"],"summary":"A concluded tender: every bid and its price","description":"Every bidder with its price, rank and gap to the winner, second-lowest price, price dispersion,\namendments of the contract, similar concluded tenders. Counts as one distinct tender record.","operationId":"get_concluded_tender","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tender_id","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{1,12}$","description":"SEAO number from /concluded-tenders.","title":"Tender Id"},"description":"SEAO number from /concluded-tenders."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcludedTenderDetailResponse"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"}}}},"/subcontracting/open":{"get":{"tags":["subcontracting"],"summary":"Open tenders where one of your trades may be needed","description":"Open tenders where one of the trades of your Subcontracting settings may be needed (RBQ\nlicence in construction, analysis of the documents elsewhere), as on the Subcontracting page.\nEmpty when the account has no trade. Each returned row counts toward the account's list rows.","operationId":"list_subcontracting_open","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trade","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":90},{"type":"null"}],"description":"One of your trades (a code from `trade_codes`: RBQ sub-category such as `4.1`, service code or `libre:…`).","title":"Trade"},"description":"One of your trades (a code from `trade_codes`: RBQ sub-category such as `4.1`, service code or `libre:…`)."},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":17,"minimum":1},{"type":"null"}],"description":"Québec administrative region code (1-17).","title":"Region"},"description":"Québec administrative region code (1-17)."},{"name":"min_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Minimum estimated value. Canadian dollars.","title":"Min Amount"},"description":"Minimum estimated value. Canadian dollars."},{"name":"max_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Maximum estimated value. Canadian dollars.","title":"Max Amount"},"description":"Maximum estimated value. Canadian dollars."},{"name":"since_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Published within N days.","title":"Since Days"},"description":"Published within N days."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Page size, 1 to 50.","default":25,"title":"Limit"},"description":"Page size, 1 to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"`pagination.next_cursor` from the previous page. Send the same filters with it.","title":"Cursor"},"description":"`pagination.next_cursor` from the previous page. Send the same filters with it."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubcontractingOpenPage"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"}}}},"/subcontracting/awarded":{"get":{"tags":["subcontracting"],"summary":"Awarded tenders in your trades: winners to contact","description":"Tenders awarded in your trades, region and value range: the winning company to contact for\nsubcontracting (name, NEQ, city), amount, trades. The contact published by SEAO is read in\nDiscer only. Each returned row counts toward the account's list rows.","operationId":"list_subcontracting_awarded","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trade","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":90},{"type":"null"}],"description":"One of your trades (a code from `trade_codes`: RBQ sub-category such as `4.1`, service code or `libre:…`).","title":"Trade"},"description":"One of your trades (a code from `trade_codes`: RBQ sub-category such as `4.1`, service code or `libre:…`)."},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":17,"minimum":1},{"type":"null"}],"description":"Québec administrative region code (1-17).","title":"Region"},"description":"Québec administrative region code (1-17)."},{"name":"min_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Minimum winning amount. Canadian dollars.","title":"Min Amount"},"description":"Minimum winning amount. Canadian dollars."},{"name":"max_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Maximum winning amount. Canadian dollars.","title":"Max Amount"},"description":"Maximum winning amount. Canadian dollars."},{"name":"since_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":30,"description":"Concluded within 30, 90 or 365 days.","default":90,"title":"Since Days"},"description":"Concluded within 30, 90 or 365 days."},{"name":"winner","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{10}$"},{"type":"null"}],"description":"Only the tenders won by this NEQ (all trades).","title":"Winner"},"description":"Only the tenders won by this NEQ (all trades)."},{"name":"buyer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Only this buyer's tenders (all trades).","title":"Buyer Id"},"description":"Only this buyer's tenders (all trades)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Page size, 1 to 50.","default":25,"title":"Limit"},"description":"Page size, 1 to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"`pagination.next_cursor` from the previous page. Send the same filters with it.","title":"Cursor"},"description":"`pagination.next_cursor` from the previous page. Send the same filters with it."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubcontractingAwardedPage"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/market/competitors":{"get":{"tags":["market"],"summary":"Companies that win the most in your niche","description":"Companies that won the most contracts in your niche over 36 months (your bids, otherwise your\nwatch profile): contracts won, bids, win rate, last bid, and the median win rate of active\ncompanies. Works for a company that rarely bids or never did; yours is never listed.","operationId":"get_market_competitors","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NicheResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/market/portrait":{"get":{"tags":["market"],"summary":"Market figures for your niche","description":"For the first 3 UNSPSC categories of your niche (your bids, otherwise your watch profile):\ntenders published, open tenders, bidders per tender, amounts awarded, main buyers, tenders\nper month. Your region when the profile has only one, otherwise all of Québec.","operationId":"get_market_portrait","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NicheResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/private-tenders":{"get":{"tags":["private-tenders"],"summary":"Private tenders sent to your organization","description":"Private tenders published on Discer by public and private buyers. Read-only: interest,\nquestions and bids are given in Discer. Each returned row counts toward the account's list rows.","operationId":"list_private_tenders","security":[{"HTTPBearer":[]}],"parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["for_you","all"],"type":"string","description":"`for_you`: the private tenders your organization was invited to or matched; `all`: every open one.","default":"for_you","title":"View"},"description":"`for_you`: the private tenders your organization was invited to or matched; `all`: every open one."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivateTenderList"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/private-tenders/{private_tender_id}":{"get":{"tags":["private-tenders"],"summary":"A private tender","description":"The private tender as your organization sees it. Reading it here registers no interest and no\nview (opening it in Discer does). Counts as one distinct tender record.","operationId":"get_private_tender","security":[{"HTTPBearer":[]}],"parameters":[{"name":"private_tender_id","in":"path","required":true,"schema":{"type":"string","maxLength":40,"description":"`id` from /private-tenders.","title":"Private Tender Id"},"description":"`id` from /private-tenders."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivateTenderResponse"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Payment Required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}}},"components":{"schemas":{"Addendum":{"properties":{"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At","description":"ISO 8601 timestamp with UTC offset."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","title":"Addendum"},"ApiKeyInfo":{"properties":{"id":{"type":"string","title":"Id","description":"Key id (not the key itself)."},"prefix":{"type":"string","title":"Prefix","description":"Visible start of the key, e.g. `dsk_live_AbCd1234`."},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes","description":"`lecture` (read). The API is read-only."}},"type":"object","required":["id","prefix","scopes"],"title":"ApiKeyInfo"},"Award":{"properties":{"winner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Winner"},"winning_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Winning Amount","description":"Canadian dollars."},"concluded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Concluded At","description":"ISO 8601 timestamp with UTC offset."}},"type":"object","title":"Award"},"Bid":{"properties":{"id":{"type":"integer","title":"Id"},"tender_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tender Id"},"private":{"type":"boolean","title":"Private","description":"True for a private tender added by hand."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"status":{"type":"string","enum":["to_evaluate","preparing","submitted","won","lost"],"title":"Status","description":"Pipeline stage."},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","description":"`seao`, `canadabuys`, `toronto`…; null for a private tender."},"bid_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bid Price","description":"Your bid price. Canadian dollars."},"estimated_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Value","description":"Canadian dollars."},"closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Closes At","description":"ISO 8601 timestamp with UTC offset."},"days_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Left"},"closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Closed","description":"Closing time has passed."},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"relevance_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relevance Level","description":"`haute`, `moyenne` or `basse`: relevance to the watch profile, as in the app; null if never ranked."},"relevance_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Relevance Score","description":"0-100."},"following":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Following","description":"Followed tender: alerts on its news (addenda, closing changes, result) are on."},"addenda_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Addenda Count"},"addenda":{"anyOf":[{"items":{"$ref":"#/components/schemas/Addendum"},"type":"array"},{"type":"null"}],"title":"Addenda","description":"Known addenda, newest first."},"closing_change":{"anyOf":[{"$ref":"#/components/schemas/ClosingChange"},{"type":"null"}],"description":"Last closing change in 14 days."},"awarded":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Awarded","description":"A result is published."},"winner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Winner","description":"Winning company, when published."},"awarded_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Awarded On","description":"Date (YYYY-MM-DD)."},"result_published_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Published On","description":"Date (YYYY-MM-DD) the result was matched to the card."},"cancelled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cancelled","description":"The tender was cancelled."},"added_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Added At","description":"ISO 8601 timestamp with UTC offset."},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At","description":"ISO 8601 timestamp with UTC offset."},"submitted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitted At","description":"ISO 8601 timestamp with UTC offset."},"decided_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decided At","description":"ISO 8601 timestamp with UTC offset."}},"type":"object","required":["id","private","status"],"title":"Bid"},"BidPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Bid"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["data","pagination"],"title":"BidPage"},"Buyer":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"presence":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Presence","description":"Market presence: tenders published in 12 months, compared with buyers of the same type."}},"additionalProperties":true,"type":"object","required":["id"],"title":"Buyer"},"BuyerMatch":{"properties":{"id":{"type":"integer","title":"Id","description":"Pass it to /buyers/{buyer_id}."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"region_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region Code"},"tenders":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tenders","description":"Tenders published by this buyer."}},"type":"object","required":["id"],"title":"BuyerMatch"},"BuyerMatches":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BuyerMatch"},"type":"array","title":"Data"},"pagination":{"type":"null","title":"Pagination","description":"Always null: at most 10 matches, no paging."}},"type":"object","required":["data"],"title":"BuyerMatches"},"BuyerResponse":{"properties":{"data":{"$ref":"#/components/schemas/Buyer"}},"type":"object","required":["data"],"title":"BuyerResponse"},"ClosingChange":{"properties":{"kind":{"type":"string","title":"Kind","description":"`date`, `suspended`, `reactivated` or `cancelled`."},"previous_closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Closes At","description":"ISO 8601 timestamp with UTC offset."},"new_closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Closes At","description":"ISO 8601 timestamp with UTC offset."},"detected_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detected At","description":"ISO 8601 timestamp with UTC offset."},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction","description":"`postponed`, `brought_forward` or `time_only`."},"days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days"}},"type":"object","required":["kind"],"title":"ClosingChange"},"Company":{"properties":{"neq":{"type":"string","title":"Neq"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"totals":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Totals","description":"Figure `{value, n, period: {from, to}, source}` (n = sample size). Bids, wins, win rate, amount won."},"strength":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Strength","description":"Strength in its main type of tender (36 months): score 0-100 and level, compared with the companies that bid at least 3 times in the same type (wins, head-to-head, activity)."},"amendments":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Amendments","description":"Amendments of the contracts it won, by award method, next to the same buyers' median overrun."},"is_you":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is You","description":"This is your company (verified NEQ)."}},"additionalProperties":true,"type":"object","required":["neq"],"title":"Company"},"CompanyMatch":{"properties":{"neq":{"type":"string","title":"Neq"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"active_36m":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active 36M","description":"Bid on SEAO in the last 36 months."},"last_bid_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Bid Year"}},"type":"object","required":["neq"],"title":"CompanyMatch"},"CompanyMatches":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CompanyMatch"},"type":"array","title":"Data"},"pagination":{"type":"null","title":"Pagination","description":"Always null: at most 10 matches, no paging."}},"type":"object","required":["data"],"title":"CompanyMatches"},"CompanyResponse":{"properties":{"data":{"$ref":"#/components/schemas/Company"}},"type":"object","required":["data"],"title":"CompanyResponse"},"ConcludedTender":{"properties":{"tender_id":{"type":"string","title":"Tender Id","description":"SEAO number: pass it to /concluded-tenders/{tender_id}."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Buyer","description":"`{id, name}`."},"region_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region Code"},"category":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Category","description":"UNSPSC category `{code, label}`."},"concluded_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Concluded On","description":"Date (YYYY-MM-DD)."},"reference_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Date","description":"Date used by the date filters: conclusion, otherwise publication (YYYY-MM-DD)."},"winner":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Winner","description":"Winning company `{neq, name}`."},"winning_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Winning Amount","description":"Canadian dollars."},"bidders":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bidders"},"prices_published":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prices Published","description":"Number of bids with a published price."},"all_prices_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"All Prices Published"},"gap_winner_vs_second_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gap Winner Vs Second Pct","description":"Gap between the two lowest submitted prices, % of the lowest."},"published_estimate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Published Estimate","description":"Canadian dollars."},"gap_to_estimate_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gap To Estimate Pct"},"you":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"You","description":"Your company's bid on this tender `{won, price_rank}` (verified NEQ), else null."}},"type":"object","required":["tender_id"],"title":"ConcludedTender"},"ConcludedTenderDetailResponse":{"properties":{"data":{"$ref":"#/components/schemas/_Ouvert","description":"Every bid with its price and gap to the winner, second-lowest price, dispersion, amendments of the contract and similar concluded tenders."}},"type":"object","required":["data"],"title":"ConcludedTenderDetailResponse"},"ConcludedTenderPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ConcludedTender"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["data","pagination"],"title":"ConcludedTenderPage"},"ErrorBody":{"properties":{"code":{"type":"string","title":"Code","description":"Stable machine-readable code, e.g. `invalid_parameter`."},"message":{"type":"string","title":"Message","description":"Human-readable explanation (English)."},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details","description":"Extra context: parameter errors, limit, window…"}},"type":"object","required":["code","message"],"title":"ErrorBody"},"ErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ErrorBody"}},"type":"object","required":["error"],"title":"ErrorResponse"},"Intelligence":{"properties":{"buyer":{"title":"Buyer","description":"Buyer of the tender."},"family":{"title":"Family","description":"UNSPSC category (4 digits) and label."},"win_probability":{"anyOf":[{"$ref":"#/components/schemas/WinProbability"},{"type":"null"}]},"winning_price":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Winning Price","description":"Observed winning prices (2026 dollars, with n and period), expected gap between the two lowest submitted prices, buyer's winning-price-to-estimate ratio. Information, not a recommendation."},"likely_bidders":{"anyOf":[{"items":{"$ref":"#/components/schemas/LikelyBidder"},"type":"array"},{"type":"null"}],"title":"Likely Bidders"},"likely_bidders_definition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Likely Bidders Definition"},"likely_bidders_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Likely Bidders Method","description":"`semantique` (bidders on the most similar concluded tenders), `modele` (Discer's model) or `regle` (36-month rule at this buyer and in this category)."},"likely_bidders_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Likely Bidders Scope","description":"`semblables` (similar tenders) or `type_donneur`."},"likely_bidders_pending":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Likely Bidders Pending","description":"True when the bid probabilities of this tender are not computed yet (overnight)."},"key_facts":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Key Facts","description":"« L'essentiel »: up to 6 short facts about this tender, each with a stable `id`, its `values`, `n`, `period` and its French text (`text_fr`)."},"competitiveness":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Competitiveness","description":"Open tenders: score and level of competition, expected bidders, strength of the expected competitors in this type of tender (36 months)."},"price_position":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Price Position","description":"Open tenders: position of past winning and competing prices around the usual price, and the position that paid the most on similar tenders (Discer's model when available). Information, not a recommendation or a guarantee."},"subcategory":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Subcategory","description":"Sub-category of the tender within its UNSPSC category (`label_fr`, `label_en`, `confidence`), for the categories where Discer classifies tenders; null otherwise."},"price_range":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Price Range","description":"Winning prices of comparable concluded tenders (P10-P90, 2026 dollars, n, period): the most similar tenders of the same sub-category when available, otherwise the category."},"annual_price":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Annual Price","description":"Recurring services: winning price of similar contracts per 12 months (P25-P75, 2026 dollars)."},"awarded_on_quality":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Awarded On Quality","description":"`quality` true when the tender (or its type) is presumably awarded on quality, not on price alone: price gaps are then not meaningful."},"buyer_history_in_family":{"title":"Buyer History In Family","description":"Figure `{value, n, period: {from, to}, source}` (n = sample size). Buyer history for this UNSPSC category."},"winner_gap_frequencies":{"title":"Winner Gap Frequencies"},"buyer_amendments_in_family":{"title":"Buyer Amendments In Family"},"neq_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neq Status","description":"`verified`, `pending_verification` or `none`: head-to-head, `is_you` and your price position need a verified NEQ."},"data_freshness":{"title":"Data Freshness"}},"additionalProperties":true,"type":"object","title":"Intelligence"},"LikelyBidder":{"properties":{"neq":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neq","description":"Québec enterprise number."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"is_you":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is You"},"bids_with_buyer_36m":{"title":"Bids With Buyer 36M","description":"Bids with this buyer in 36 months."},"wins_with_buyer_36m":{"title":"Wins With Buyer 36M"},"bids_in_family_region":{"title":"Bids In Family Region","description":"Bids in this UNSPSC category and region."},"wins_in_family_region":{"title":"Wins In Family Region"},"head_to_head_with_you":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Head To Head With You","description":"Shared tenders, your wins, their wins, median price gap (%)."},"bid_probability_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bid Probability Pct","description":"Chances that this company bids on this open tender, 0-100, from Discer's model (when computed)."}},"additionalProperties":true,"type":"object","title":"LikelyBidder"},"Market":{"properties":{"neq":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neq","description":"Company NEQ of the account."},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"report":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Report","description":"Market report: niche, figures, competitors, lost tenders. Null when the account has no company NEQ."}},"type":"object","title":"Market"},"MarketResponse":{"properties":{"data":{"$ref":"#/components/schemas/Market"}},"type":"object","required":["data"],"title":"MarketResponse"},"Me":{"properties":{"account_id":{"type":"string","title":"Account Id"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"neq":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neq","description":"Québec enterprise number (10 digits) of the account."},"neq_status":{"type":"string","title":"Neq Status","description":"`verified`, `pending_verification` or `none`. Indicators about your own company (head-to-head, `is_you`, your price position) need a verified NEQ."},"plan":{"type":"string","title":"Plan","description":"Plan code: `equipe` (Team)."},"api_key":{"$ref":"#/components/schemas/ApiKeyInfo"}},"type":"object","required":["account_id","neq_status","plan","api_key"],"title":"Me"},"MeResponse":{"properties":{"data":{"$ref":"#/components/schemas/Me"}},"type":"object","required":["data"],"title":"MeResponse"},"NicheResponse":{"properties":{"data":{"$ref":"#/components/schemas/_Ouvert"}},"type":"object","required":["data"],"title":"NicheResponse"},"Pagination":{"properties":{"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Pass it as `cursor` to get the next page; null on the last page."},"has_more":{"type":"boolean","title":"Has More","description":"True when another page exists."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Number of matching results (all pages)."}},"type":"object","required":["has_more"],"title":"Pagination"},"PricePrediction":{"properties":{"q10":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q10","description":"10th percentile. Canadian dollars."},"q50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q50","description":"Median. Canadian dollars."},"q90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q90","description":"90th percentile. Canadian dollars."},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"}},"type":"object","title":"PricePrediction"},"PrivateTender":{"properties":{"id":{"type":"string","title":"Id","description":"Pass it to /private-tenders/{id}."},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer","description":"Organization of the buyer."},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"region_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region Code"},"closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Closes At","description":"ISO 8601 timestamp with UTC offset."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"`published`, `closed`, `awarded`, `non_attribue` or `cancelled`."},"invitation_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invitation Origin","description":"How your organization was invited; null if not."},"intention":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intention"},"rbq_trades":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Rbq Trades"},"family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family"},"tender_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tender Type"},"bid_submitted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Bid Submitted"}},"type":"object","required":["id"],"title":"PrivateTender"},"PrivateTenderList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PrivateTender"},"type":"array","title":"Data"},"pagination":{"type":"null","title":"Pagination","description":"Always null: the whole list."}},"type":"object","required":["data"],"title":"PrivateTenderList"},"PrivateTenderResponse":{"properties":{"data":{"$ref":"#/components/schemas/_Ouvert","description":"Scope, constraints, dates, documents (names only), addenda, published questions, Discer's analysis of the documents; after opening: your result and, with the Team plan, bidders, prices and winner."}},"type":"object","required":["data"],"title":"PrivateTenderResponse"},"Relevance":{"properties":{"score":{"type":"integer","title":"Score","description":"0-100, same ranking as the daily alerts."},"level":{"type":"string","title":"Level","description":"`haute` (high), `moyenne` (medium) or `basse` (low)."},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons","description":"Why the tender matches the watch profile."}},"type":"object","required":["score","level","reasons"],"title":"Relevance"},"Renewal":{"properties":{"tender_id":{"type":"string","title":"Tender Id","description":"SEAO number of the original tender."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer"},"buyer_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer Id","description":"Pass it to /buyers/{buyer_id}."},"region":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region","description":"Region code, 1-17."},"family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family","description":"UNSPSC category (4 digits)."},"family_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family Label"},"signed_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed On","description":"Date (YYYY-MM-DD)."},"expected_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected End","description":"Date (YYYY-MM-DD)."},"end_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Source","description":"`periode_declaree` (period declared on SEAO) or `duree_publiee` (start + published duration)."},"duration_months":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Duration Months"},"total_amount":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Total Amount","description":"Canadian dollars."},"incumbents":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Incumbents","description":"Incumbent companies `{neq, name, is_you}`."},"is_you":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is You","description":"One of the incumbents is your company (listed first)."},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"additionalProperties":true,"type":"object","required":["tender_id"],"title":"Renewal"},"RenewalPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Renewal"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["data","pagination"],"title":"RenewalPage"},"SubcontractingAwarded":{"properties":{"tender_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tender Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer"},"buyer_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer Id"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"winner":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Winner","description":"Winning company to contact `{neq, name, city}`; its published contact is read in Discer."},"winning_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Winning Amount","description":"Canadian dollars."},"concluded_on":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Concluded On","description":"Date (YYYY-MM-DD)."},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"Notice on SEAO."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"trades":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Trades"},"trade_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Trade Codes"},"subcontracting":{"anyOf":[{"$ref":"#/components/schemas/SubcontractingStatus"},{"type":"null"}]},"information_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Information Only","description":"Trades of the Bureau des soumissions déposées only: market information, not a lead."}},"type":"object","title":"SubcontractingAwarded"},"SubcontractingAwardedPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SubcontractingAwarded"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["data","pagination"],"title":"SubcontractingAwardedPage"},"SubcontractingOpen":{"properties":{"tender_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tender Id"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer"},"buyer_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer Id","description":"Pass it to /buyers/{buyer_id}."},"region_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At","description":"ISO 8601 timestamp with UTC offset."},"closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Closes At","description":"ISO 8601 timestamp with UTC offset."},"days_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Left"},"estimated_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Value","description":"Canadian dollars."},"score":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Score","description":"Likelihood that one of your trades is needed, 0-100."},"trades":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Trades","description":"Your trades needed `{code, label, rbq}`."},"trade_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Trade Codes"},"why":{"title":"Why","description":"Why the trade may be needed."},"subcontracting":{"anyOf":[{"$ref":"#/components/schemas/SubcontractingStatus"},{"type":"null"}]},"from_document_analysis":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"From Document Analysis","description":"The trade comes from an analysis of the tender documents."}},"type":"object","title":"SubcontractingOpen"},"SubcontractingOpenPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SubcontractingOpen"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["data","pagination"],"title":"SubcontractingOpenPage"},"SubcontractingStatus":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Subcontracting allowed, required or unknown (French code)."},"status_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Source"},"status_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Label"}},"additionalProperties":true,"type":"object","title":"SubcontractingStatus"},"Tender":{"properties":{"id":{"type":"string","title":"Id","description":"SEAO number, or <PREFIX>-<reference> for other sources (CB-…, TOR-…)."},"source":{"type":"string","title":"Source","description":"`seao`, `canadabuys`, `toronto`…"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer","description":"Public buyer (organization) name."},"buyer_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer City"},"region_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region Code","description":"Québec administrative region code, 1-17."},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region","description":"Region name."},"province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Province","description":"ISO province code (QC, ON…)."},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location","description":"Free-text location published by non-SEAO sources."},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At","description":"ISO 8601 timestamp with UTC offset."},"closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Closes At","description":"ISO 8601 timestamp with UTC offset."},"days_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Left","description":"Calendar days until closing, Québec time."},"estimated_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Value","description":"Estimated value when published. Canadian dollars."},"unspsc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unspsc","description":"Main UNSPSC code."},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"Notice on the source website."},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"`fr` or `en`."},"relevance":{"anyOf":[{"$ref":"#/components/schemas/Relevance"},{"type":"null"}],"description":"Only with `profile`."}},"type":"object","required":["id","source"],"title":"Tender"},"TenderDetail":{"properties":{"tender":{"$ref":"#/components/schemas/TenderDetailFacts"},"intelligence":{"anyOf":[{"$ref":"#/components/schemas/Intelligence"},{"type":"null"}],"description":"SEAO tenders: null for sources without bidding history or with `intelligence=false`."}},"type":"object","required":["tender"],"title":"TenderDetail"},"TenderDetailFacts":{"properties":{"id":{"type":"string","title":"Id"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"buyer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer"},"buyer_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buyer City"},"region_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Region Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Province"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At","description":"ISO 8601 timestamp with UTC offset."},"closes_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Closes At","description":"ISO 8601 timestamp with UTC offset."},"days_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Left","description":"Calendar days until closing, Québec time."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"contract_nature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Nature"},"notice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notice Type"},"published_estimate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Published Estimate","description":"Estimate published by the buyer. Canadian dollars."},"estimated_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Value","description":"Canadian dollars."},"documents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Documents","description":"Number of tender documents."},"planned_duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Planned Duration","description":"Contract duration as published."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"award":{"anyOf":[{"$ref":"#/components/schemas/Award"},{"type":"null"}],"description":"Concluded tenders only."},"price_prediction":{"anyOf":[{"$ref":"#/components/schemas/PricePrediction"},{"type":"null"}],"description":"Discer's price model, when available."},"publishes_bidders_and_prices":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Publishes Bidders And Prices","description":"True when the source publishes bidders and prices (SEAO)."}},"additionalProperties":true,"type":"object","required":["id"],"title":"TenderDetailFacts"},"TenderDetailResponse":{"properties":{"data":{"$ref":"#/components/schemas/TenderDetail"}},"type":"object","required":["data"],"title":"TenderDetailResponse"},"TenderPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Tender"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"type":"object","required":["data","pagination"],"title":"TenderPage"},"WatchProfile":{"properties":{"id":{"type":"string","title":"Id","description":"`principal` or a numeric id: pass it as `profile` to /tenders."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"primary":{"type":"boolean","title":"Primary"},"active":{"type":"boolean","title":"Active","description":"False when the current plan does not include this profile."},"families":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Families","description":"UNSPSC categories `{code, label}`."},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"regions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Regions","description":"`{code, name, priority}`."},"all_quebec":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"All Quebec"},"provinces":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Provinces"},"priority_regions":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Priority Regions"},"min_value":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Min Value","description":"Canadian dollars."},"max_value":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Max Value","description":"Canadian dollars."}},"additionalProperties":true,"type":"object","required":["id","primary","active"],"title":"WatchProfile"},"WatchProfilesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WatchProfile"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"WatchProfilesResponse"},"WinProbability":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"`computed`, `baseline`, `segment_not_calibrated`, `insufficient_data`, `model_unavailable` or `tender_concluded`. A percentage is given only when calibrated."},"display":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display"},"probability_pct":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Probability Pct","description":"Percent, 0-100."},"range_pct":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Range Pct","description":"`{low, high}`, percent."},"observed_interval_pct":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Observed Interval Pct"},"n":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"N","description":"Sample size."},"expected_bidders":{"title":"Expected Bidders"},"company":{"title":"Company"},"factors":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Factors"},"test_period":{"title":"Test Period"}},"additionalProperties":true,"type":"object","title":"WinProbability"},"_Ouvert":{"properties":{},"additionalProperties":true,"type":"object","title":"_Ouvert","description":"Objet documenté dont les champs supplémentaires sont conservés (ajouts compatibles)."}},"securitySchemes":{"HTTPBearer":{"type":"http","description":"API key `dsk_live_…` (Settings → API and MCP).","scheme":"bearer"}}},"tags":[{"name":"account","description":"Your account and API key."},{"name":"tenders","description":"Open tenders and tender intelligence."},{"name":"my-data","description":"Your Pipeline and watch profiles."},{"name":"market","description":"Companies, buyers, renewals and your market report."},{"name":"concluded","description":"Concluded tenders: winners, bidders and their prices."},{"name":"subcontracting","description":"Open and awarded tenders where your trades are needed."},{"name":"private-tenders","description":"Private tenders published on Discer by buyers."}],"servers":[{"url":"/api/v1"}]}