Tenders in Spain API

⭐ Beginner's Pick Business / No Auth Required Beginner HTTPS
Free to Use Varies (check documentation)

Overview

The Tenders in Spain API from tenders.guru delivers Spanish public procurement data in JSON format, covering central government, autonomous communities, and local authorities. No API key is required, making it immediately accessible for open-data projects, journalism tools, or research into public expenditure. Each record includes the contracting authority, contract value, and supplier details.

💡

Beginner Tip

Query the API directly at https://tenders.guru/es/api/tenders?page=1 to see a live sample — it is completely free and needs no account, so you can integrate it into a project in minutes.

Available Data

Tenders in Spain data via REST API
JSON-formatted response data
Freely accessible without authentication

Example Response

JSON Response
{
  "status": "success",
  "data": {
    "result": "Data from Tenders in Spain",
    "description": "Get data for procurements in Spain in JSON format",
    "timestamp": "2025-01-15T10:00:00Z"
  }
}

Field Reference

id Unique identifier for the Spanish tender record
title Official subject of the procurement contract
buyer Contracting authority (ministry, region, or municipality)
value Awarded or estimated contract value in euros
date Publication or award date of the tender
supplier Name of the winning bidder, if the contract has been awarded

Implementation Example

// ⚠️ Note: This URL may be a documentation page. Check official docs for actual API endpoint.
const url = "https://tenders.guru/es/api";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

429 Too Many Requests Automated scraping without rate limiting
Limit requests to one per second and implement a retry strategy with exponential backoff
Malformed JSON in older records Some historical tender records contain special characters that break naive parsers
Use a robust JSON library such as Python json module or Node JSON.parse with proper encoding handling
Pagination out of range Requesting a page number beyond the total available pages
Check the total_pages or count field in the response and stop pagination when the current page exceeds it

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 15/20
🔒 Security 15/15
🛠 Developer XP 15/20
✓ Reliability 7/15
Response Time 348ms

Fully tested on Apr 5, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Business
Difficulty Beginner
Verified: 2026-04-04

Similar APIs

View All →