Nordic Tender Monitor: SE, NO, FI, DK, new only
Pricing
from $10.00 / 1,000 new tender notices
Go to Apify Store
Nordic Tender Monitor: SE, NO, FI, DK, new only
Pricing
from $10.00 / 1,000 new tender notices
You can access the Nordic Tender Monitor: SE, NO, FI, DK, new only programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.3", "x-build-id": "atMeZUfAb8jR66t5o" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/nordic_signals~nordic-tender-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-nordic_signals-nordic-tender-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/nordic_signals~nordic-tender-monitor/runs": { "post": { "operationId": "runs-sync-nordic_signals-nordic-tender-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/nordic_signals~nordic-tender-monitor/run-sync": { "post": { "operationId": "run-sync-nordic_signals-nordic-tender-monitor", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "countries": { "title": "Countries", "type": "array", "description": "Buyer country. Empty = all four.", "items": { "type": "string", "enum": [ "SE", "NO", "FI", "DK" ], "enumTitles": [ "Sweden", "Norway", "Finland", "Denmark" ] }, "default": [ "SE", "NO", "FI", "DK" ] }, "noticeTypes": { "title": "Notice types", "type": "array", "description": "What to return. 'Tenders' = open calls for tenders (the default). 'Contract awards' = who won: adds winner, winner country and awarded value. Choose both to get both kinds.", "items": { "type": "string", "enum": [ "tenders", "awards" ], "enumTitles": [ "Tenders (calls for tenders)", "Contract awards (winners)" ] }, "default": [ "tenders" ] }, "cpvCodes": { "title": "CPV codes", "type": "array", "description": "CPV code or the start of one (digits only, 2 to 8, optional check digit), e.g. 72 for IT services or 71310000 for technical consultancy. Empty = all.", "default": [], "items": { "type": "string" } }, "keywords": { "title": "Keywords", "type": "array", "description": "The notice must contain at least one of these as a whole word or phrase in its short title or the buyer's name (case-insensitive; 'it' does not match 'profiling'). Add word variants for compound words, e.g. 'städ' and 'städning'. Empty = all.", "default": [], "items": { "type": "string" } }, "buyerNames": { "title": "Buyer names", "type": "array", "description": "The buyer's name must contain at least one of these as a whole word or phrase (case-insensitive), e.g. 'Region Skåne' or 'Trafikverket'. Empty = all.", "default": [], "items": { "type": "string" } }, "nutsCodes": { "title": "Place of performance (NUTS)", "type": "array", "description": "NUTS code or the start of one, e.g. SE11 for Stockholm, SE22 for Skåne or NO072 for Troms. A notice matches if any of its places of performance starts with one of these. Notices without a stated place are left out when this is set. Empty = all.", "default": [], "items": { "type": "string" } }, "minEstimatedValue": { "title": "Minimum value", "minimum": 0, "type": "number", "description": "Only notices worth at least this much, in the notice's own currency (SEK, NOK, DKK or EUR; no conversion). Tenders are compared on estimated value, contract awards on awarded value. Notices with no stated value are left out when this is set." }, "onlyNew": { "title": "Only new since the last run", "type": "boolean", "description": "Turn on for scheduled monitoring: returns only notices not delivered in earlier runs of the same watch (same countries, CPV codes and keywords). Off by default.", "default": false }, "daysBack": { "title": "Days back", "minimum": 1, "maximum": 90, "type": "integer", "description": "How many days of notices to return. With 'Only new' on, this applies only to the first run; later runs continue from the previous one.", "default": 3 }, "minDaysToDeadline": { "title": "Minimum days to deadline", "minimum": 0, "maximum": 3650, "type": "integer", "description": "Tenders only: leave out calls that close in fewer than this many days from today, so there is still time to bid. Tenders without a stated deadline are left out when this is set. Contract awards are not affected." }, "maxResults": { "title": "Max number of notices", "minimum": 1, "maximum": 10000, "type": "integer", "description": "Maximum notices per run (default 50). You pay $0.01 per notice delivered, so this also caps the cost of a run.", "default": 50 } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Nordic Tender Monitor: SE, NO, FI, DK, new only from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: