↑↓ navigate ↵ open esc close

npm · @data-atlas/cli

Government contracts from your terminal.

The selltostate binary is a thin wrapper over the REST API — every command maps 1:1 to an endpoint. Pipe structured tender data into build scripts, CI, or your CRM import, with --format table|json|csv.

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

# Install & go

npm i -g @data-atlas/cli

# verify + persist your key
selltostate auth login

selltostate search "cybersecurity" \
  --scope tenders --year-min 2023

selltostate get buyer \
  ministry-of-education

Or one-off: STS_API_KEY=sts_… selltostate whoami.

Auth & config.

The CLI authenticates with a dashboard API key sent as x-api-key — the same machine credential the REST routes and MCP server accept. selltostate auth login verifies the key via /whoami and persists it at ~/.config/selltostate/config.json (mode 0600).

Resolution order: --api-key/--api-url flags → STS_API_KEY/STS_API_URL env → the config file → default host. A 402 prints the payment_link; a 401 points you at auth login. Exit codes: 0 ok · 2 unauthorized · 3 payment required · 4 rate limited · 64 usage.

Commands.

Each maps 1:1 to a REST endpoint. Full flags in the reference (x-cli extension).

selltostate auth login Verify a key via /whoami and store it (~/.config/selltostate/config.json, 0600).
selltostate whoami Auth + entitlement + scopes + export cap.
selltostate search <q> --scope tenders Faceted search (--sector --country --year-min/max --amount-min/max …).
selltostate awards --supplier ACME Awarded-tender rows (402-gated).
selltostate get buyer <slug> Entity detail: buyer | supplier | tender | sector.
selltostate buyers / suppliers / sectors Top-N agencies, suppliers, and the sector taxonomy.
selltostate lists ls|create|add|rm|… Saved award lists (requires a user API key).
selltostate saved-searches ls|save|… Saved searches (requires a user API key).
selltostate export --supplier ACME -o awards.csv Stream the entitlement-capped CSV.
selltostate price / pay Live price (no auth) · activate a subscription autonomously.

Script it.

# JSON out → jq → pipeline
selltostate search "cloud infrastructure" --scope tenders --json \
  | jq '.hits[] | {id, agency: .buyer_name, amount: .awarded_amt}'

# CSV export straight to disk
selltostate export --agency ministry-of-education --year 2024 -o moe-2024.csv

# Build a saved list from a search (user key)
selltostate lists create "Cyber FY24"
selltostate lists add lst_abc --tender MOE000ETT24300001

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 →

Install the CLI.

Save a search, and we email you the new matches each day. Or ask your AI agent, or book a demo for your team.

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