Skip to content

Endpoints

All endpoints are prefixed with https://api-rest.tendios.com/api and require the api-key header.


Tenders

Search tenders

http
POST /v1/tenders/search

Returns a paginated list of tenders matching the given filters.

Request body

FieldTypeDescription
textstringFree-text search query
pagenumberPage number (default: 1)
pageSizenumberResults per page (max 100, default: 20)
sortstringby-published-date | by-submission-date | by-budget
isDescendentbooleanSort descending (default: true)
statusstring[]Filter by status values
locationsstring[]Location filters e.g. ["country/ES", "province/28"]
minBudgetnumberMinimum budget (no taxes)
maxBudgetnumberMaximum budget (no taxes)

Example

bash
curl -X POST https://api-rest.tendios.com/api/v1/tenders/search \
  -H "api-key: tend_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "text": "IT services", "pageSize": 10, "locations": ["country/ES"] }'

Response — see Pagination for the envelope shape.


Get tender by ID

http
GET /v1/tenders/{id}

Returns the full detail of a single tender.

Path params

ParamDescription
idTender ID (e.g. 507f1f77bcf86cd799439011)

Example

bash
curl https://api-rest.tendios.com/api/v1/tenders/507f1f77bcf86cd799439011 \
  -H "api-key: tend_your_key"

Get tender sheets

http
GET /v1/tenders/{id}/sheets

Returns all document sheets attached to a tender.

Path params

ParamDescription
idTender ID

Download tender sheet

http
GET /v1/tenders/sheets/{sheetId}/download

Downloads a single tender document file.

Path params

ParamDescription
sheetIdSheet ID

Organizations

Get organization profile

http
GET /v1/organizations/{slug}

Returns the public profile of an organization (bidder or contracting body).

Path params

ParamDescription
slugOrganization slug (e.g. altia-consultores-sa)

Response fields

FieldTypeDescription
idstringOrganization ID
namestringOrganization name
typestringbidder or public-contracting-institution
taxIdstring?Tax identification number
activitystring?Business activity description
countrystring?ISO 3166-1 alpha-2 country code
addressobject?{ city, province, postCode, street }
webUrlstring?Website URL
logostring?Logo image URL

Example

bash
curl https://api-rest.tendios.com/api/v1/organizations/altia-consultores-sa \
  -H "api-key: tend_your_key"

Get organization award statistics

http
GET /v1/organizations/{slug}/awards

Returns yearly award statistics and sector breakdown for an organization.

Path params

ParamDescription
slugOrganization slug

Response fields

FieldTypeDescription
organizationIdstringOrganization ID
organizationNamestringOrganization name
typestringbidder or public-contracting-institution
statsarrayYearly stats: [{ year, count, totalAmount }]
sectorsarrayCPV sector breakdown: [{ divisionCode, divisionNameEn, divisionNameEs, emoji, count, percentage }]

Example

bash
curl https://api-rest.tendios.com/api/v1/organizations/altia-consultores-sa/awards \
  -H "api-key: tend_your_key"

CPV codes

Get CPV details

http
GET /v1/cpv/{code}

Returns details for a CPV code including names in 7 EU languages.

Path params

ParamDescription
codeCPV code (e.g. 72000000)

Response fields

FieldTypeDescription
codestringCPV code
typestringdivision | group | class | category
nameEnstring?Name in English
nameEsstring?Name in Spanish
nameFrstring?Name in French
nameDestring?Name in German
nameItstring?Name in Italian
nameCastring?Name in Catalan
namePtstring?Name in Portuguese
emojistring?Emoji representing the category
fontAwesomeIconstring?Font Awesome icon name

Example

bash
curl https://api-rest.tendios.com/api/v1/cpv/72000000 \
  -H "api-key: tend_your_key"

Alerts

Get alert tender results

http
POST /v1/alerts/{alertId}/results

Returns tenders that match a saved alert.

Path params

ParamDescription
alertIdAlert ID

Kanban

These endpoints expose the CRM pipeline kanban board. They require the API key of the account that owns the pipeline.

Get pipeline status totals

http
GET /v1/kanban/{pipelineId}/status

Returns opportunity counts and total amounts grouped by pipeline status — used to render kanban column headers.

Path params

ParamDescription
pipelineIdPipeline ID

Query params

ParamTypeDescription
responsiblestring[]Filter by responsible user IDs
teamResponsiblestring[]Filter by responsible team IDs

Response — array of:

FieldTypeDescription
statusobject{ id, name, isInitial, isTerminal, pipelineId, outcomeType, sortPoints, showInKanban, backgroundColor?, textColor?, description? }
opportunityCountnumberNumber of opportunities in this status
totalAmountnumberSum of opportunity amounts
currencystringCurrency code (e.g. EUR)

Get opportunities by status

http
GET /v1/kanban/{pipelineId}/status/{statusId}/opportunities

Returns paginated opportunities for a single kanban column.

Path params

ParamDescription
pipelineIdPipeline ID
statusIdPipeline status ID

Query params

ParamTypeDefaultDescription
pagenumber1Page number
pageSizenumber10Results per page
sortstringSort order

Search kanban opportunities

http
GET /v1/kanban/{pipelineId}/search

Searches opportunities across all statuses in a pipeline. Returns a map of statusId → opportunities[].

Path params

ParamDescription
pipelineIdPipeline ID

Query params

ParamTypeDefaultDescription
searchstringText search term
limitnumber10Max opportunities per status (max 50)
responsiblestring[]Filter by responsible user IDs
teamResponsiblestring[]Filter by responsible team IDs
sortstringSort order

API Key

Get API key info

http
GET /v1/api-key

Returns metadata about the API key in use — rate limit, expiry, last usage.

Example

bash
curl https://api-rest.tendios.com/api/v1/api-key \
  -H "api-key: tend_your_key"

© Tendios