↑↓ navigate ↵ open esc close

Feature

A REST API for government tender and award data

The Sell to State API gives your code the same data as the app: tenders, awards, buyers, suppliers and sectors, in one schema for every country.

Ask your AI agent

Claude ChatGPT Perplexity Grok
Set up Sell to State for me: government tenders and contract awards from official sources in 73 countries, as MCP tools. Agent docs: https://docs.selltostate.com/llms.txt
1. Sign me in yourself. Try this first: you need me only for one approval click.
- If you can send HTTP requests: POST https://app.selltostate.com/api/v1/agent/signup with JSON {"client_name": "<your app name>"}. Show me verification_uri_complete from the reply as a link. I open it, sign up free with Google or email, and approve the code. Every "interval" seconds, POST token_endpoint with {"device_code": "<device_code>"} until the reply has access_token. Send access_token in the x-api-key header to the MCP server https://app.selltostate.com/api/mcp.
- If you cannot send HTTP requests: tell me to add the MCP server https://app.selltostate.com/api/mcp in this app. Its sign-in page also creates the free account. Claude: Customize > Connectors > Add custom connector. ChatGPT: chatgpt.com/plugins > + > Add custom MCP server, choose OAuth. Claude Code: claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp, then /mcp > Authenticate.
2. The tools are free to connect. A free account gets plan_search 3 times a day and search for 2 different searches a day: titles, buyers, status and dates. Amounts, winners and notice links need a plan. Call whoami to see my plan.
3. Ask me what my company sells and in which countries. Call plan_search with my answer, then search with its scope, q and filters. Show me the 10 best open tenders with the title, the buyer and the dates. Then give me app_url: it shows every row, and I can save the search there for email alerts.

Enterprise

Give your AI agent this prompt
1. Sign me in yourself. Try this first: you need me only for one approval click.
- If you can send HTTP requests: POST https://app.selltostate.com/api/v1/agent/signup with JSON {"client_name": "<your app name>"}. Show me verification_uri_complete from the reply as a link. I open it, sign up free with Google or email, and approve the code. Every "interval" seconds, POST token_endpoint with {"device_code": "<device_code>"} until the reply has access_token. Send access_token in the x-api-key header to the MCP server https://app.selltostate.com/api/mcp.
- If you cannot send HTTP requests: tell me to add the MCP server https://app.selltostate.com/api/mcp in this app. Its sign-in page also creates the free account. Claude: Customize > Connectors > Add custom connector. ChatGPT: chatgpt.com/plugins > + > Add custom MCP server, choose OAuth. Claude Code: claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp, then /mcp > Authenticate.
2. The tools are free to connect. A free account gets plan_search 3 times a day and search for 2 different searches a day: titles, buyers, status and dates. Amounts, winners and notice links need a plan. Call whoami to see my plan. Read the skill at https://www.selltostate.com/skills/selltostate-tender-data-api/SKILL.md.
3. Using the Sell to State REST API with my API key, fetch the awards of the last 7 days for <what my company sells> in <countries> and push them to <my CRM or sheet>.
Or give your AI agent this skill (SKILL.md)
---
name: selltostate-tender-data-api
description: REST API with Sell to State data (government tenders and contract awards from official procurement sources). Use when the user wants to call the Sell to State REST API from code, a script or a pipeline.
---

# REST API (Sell to State)

## Access

1. MCP: the server https://app.selltostate.com/api/mcp (OAuth, or the x-api-key of the agent sign-in: POST https://app.selltostate.com/api/v1/agent/signup, the user approves one code). Call `whoami`. `active` false is a free account: `plan_search` and `search` only, 1-2 searches a day.
2. REST: https://app.selltostate.com/api/v1 with the header `x-api-key`. Read the key from `STS_API_KEY` and never print it.
3. No plan yet: the user picks a plan at https://app.selltostate.com/plans, or you run the agent signup in "Get access" of https://www.selltostate.com/skills/selltostate/SKILL.md. The user pays in the browser.

## Task

Using the Sell to State REST API with my API key, fetch the awards of the last 7 days for <what my company sells> in <countries> and push them to <my CRM or sheet>.

Ask the user for each value in <angle brackets> before the first call.

## Steps

1. Base URL https://app.selltostate.com/api/v1. Send `x-api-key: $STS_API_KEY` on every call. Check the plan: `GET https://app.selltostate.com/api/v1/whoami`.
2. Tenders: `GET https://app.selltostate.com/api/v1/search?scope=tenders&q=<words>&country=<slugs>&accepts_bids=true&published_days=7`. Awards: `GET https://app.selltostate.com/api/v1/awards?country=<slug>&q=<words>&awarded_days=7&page=1&page_size=100`.
3. Page through the results until you have `total` rows. Remove duplicates by `id`.
4. The full spec: https://app.selltostate.com/api/openapi.json.
5. Limits: 300 search calls and 120 data calls per minute per key. On 429, wait `Retry-After` seconds.

## Rules

- Give `source_url` (the official notice) for each tender and award. The user reads the documents and bids on the official portal.
- Amounts are in the source currency. Do not add amounts in different currencies.
- The data shows awards, not bids. Do not say that a company lost a tender.
- On a 402, show the message and the link to the user, then stop. On a 429, wait `Retry-After` seconds.
- Credit the data: "Data: Sell to State (selltostate.com)".

More skills (open tenders, buyer research, competitor wins, alerts, API reference): https://github.com/getbeton/selltostate-skills

Skill file → All Sell to State skills on GitHub →

Endpoints

Search, awards, tenders, buyers, suppliers and sectors, each with filters for country, dates, status and value. whoami shows the plan of the key. Every response has the same field names for every country.

Authentication

Create an API key in your account and send it in the x-api-key header. An AI agent can get a key through the agent signup: the person approves and pays in the browser, and the agent receives the key.

What teams build with it

A daily sync of new tenders into the CRM, a market dashboard in the BI tool, a Slack message for each new award of a competitor, or procurement data inside their own product.

How it works

  1. 01

    Pick a plan

    The API is in every paid plan.

  2. 02

    Create a key

    In your account, or by agent signup.

  3. 03

    Call the API

    Header x-api-key.

  4. 04

    Sync on a schedule

    Poll by updated date.

Who uses it

  • Revenue operations teams that sync tenders into the CRM
  • Data teams that load procurement data into a warehouse
  • Developers of govtech and sales products

Questions

Is there a rate limit? +

Yes, a per-key limit that fits a sync job and an interactive agent. The API answers 429 with Retry-After when you go over it.

Is there an OpenAPI file? +

Yes. The API page links the OpenAPI reference.

Pricing

One price for the whole team.

Search and daily email alerts are free. A plan shows the winner and the value of each award, and adds CSV export, the API and MCP.

3-day pass

US$19€19one payment

For one research job. Full access for 72 hours, then it stops. Nothing renews.

Get the 3-day pass

Sign up, then pay by card.

  • Full access for 3 days
  • 10,000 export rows in total
  • Search, lists, API and MCP
  • Saved searches and daily email alerts
  • One pass per account

Subscription

US$49€45/mo

US$499€449/yr

Cancel at any time.

One payment a year. 15%17% less than 12 monthly payments.

Subscribe monthlySubscribe annually

Sign up, then pay by card.

  • Access until you cancel12 months of access
  • 5,000 rows per export
  • Search, lists, API and MCP
  • Saved searches and daily email alerts
  • One price for the whole team. No seat fees.

Enterprise

Custom

For teams that need bulk data or their own contract terms.

Book a call

A 30-minute call with our team.

  • Everything in Subscription
  • Bulk delivery to Snowflake, Amazon S3 or a CRM webhook
  • Custom contract terms
Secure payments via Stripe Stripe Visa Mastercard American Express
See full pricing →

Put procurement data in your stack.

Pick a plan and create an API key.

Ask your AI agent

Claude ChatGPT Perplexity Grok
Set up Sell to State for me: government tenders and contract awards from official sources in 73 countries, as MCP tools. Agent docs: https://docs.selltostate.com/llms.txt
1. Sign me in yourself. Try this first: you need me only for one approval click.
- If you can send HTTP requests: POST https://app.selltostate.com/api/v1/agent/signup with JSON {"client_name": "<your app name>"}. Show me verification_uri_complete from the reply as a link. I open it, sign up free with Google or email, and approve the code. Every "interval" seconds, POST token_endpoint with {"device_code": "<device_code>"} until the reply has access_token. Send access_token in the x-api-key header to the MCP server https://app.selltostate.com/api/mcp.
- If you cannot send HTTP requests: tell me to add the MCP server https://app.selltostate.com/api/mcp in this app. Its sign-in page also creates the free account. Claude: Customize > Connectors > Add custom connector. ChatGPT: chatgpt.com/plugins > + > Add custom MCP server, choose OAuth. Claude Code: claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp, then /mcp > Authenticate.
2. The tools are free to connect. A free account gets plan_search 3 times a day and search for 2 different searches a day: titles, buyers, status and dates. Amounts, winners and notice links need a plan. Call whoami to see my plan.
3. Ask me what my company sells and in which countries. Call plan_search with my answer, then search with its scope, q and filters. Show me the 10 best open tenders with the title, the buyer and the dates. Then give me app_url: it shows every row, and I can save the search there for email alerts.

Enterprise

Sign Up