selltostate-cli — selltostate
Official command-line client for the Sell to State government-contracts data API
(app.selltostate.com). Python port of the npm package
@selltostate/cli: the same commands,
flags, output and exit codes. Standard library only, Python 3.9+.
pipx install selltostate-cli # or: pip install selltostate-cli / uv tool install selltostate-cli
selltostate auth login # prompts for the key, checks it with /whoami, saves it
selltostate search "IT consulting" --country singapore --year-min 2026 --format json
Get a key at https://app.selltostate.com/dashboard (Settings -> API keys).
Auth and configuration
The CLI sends a dashboard API key as the x-api-key header. Resolution order:
--api-key/--api-urlflagsSTS_API_KEY/STS_API_URLenvironment variables~/.config/selltostate/config.json(written byauth login, mode0600; honoursXDG_CONFIG_HOME)- Default API URL
https://app.selltostate.com
The npm and the Python CLI share this config file.
Commands
| Command | Endpoint |
|---|---|
whoami |
GET /api/v1/whoami |
search <q> [filters] |
GET /api/v1/search |
awards [filters] |
GET /api/v1/awards |
get buyer|supplier|tender|sector <id> |
GET /api/v1/{buyers|suppliers|tenders|sectors}/<id> (tender: award_id) |
sectors, suppliers [--limit], buyers [--limit] |
GET /api/v1/{sectors|suppliers|buyers} |
lists ls|create|show|add|rm|rename|delete |
/api/v1/lists* |
saved-searches ls|save|show|rename|delete |
/api/v1/saved-searches* |
export [filters] [-o file] |
GET /api/v1/awards.csv |
price |
GET /api/v1/price (no auth) |
pay [--token --customer] |
POST /api/v1/pay |
--format table|json|csv (default table; --json = --format json). Run
selltostate <command> --help for the flags of one command.
Exit codes
0 success · 1 error · 2 unauthorized (401) · 3 payment required (402) · 4 rate limited (429) · 64 usage error
Development
This package lives in the data-atlas monorepo next to packages/cli. Keep both in lockstep.
python -m unittest discover -s tests # no network; compares --help with packages/cli/dist when it is built
uv build # dist/selltostate_cli-<version>-py3-none-any.whl
Metadata
Release files for selltostate-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| selltostate_cli-0.1.0.tar.gz | 16.5 kB | Without provenance | Details for selltostate_cli-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| selltostate_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for selltostate_cli-0.1.0-py3-none-any.whl |
Total release size: 30.4 kB
Release files / selltostate_cli-0.1.0.tar.gz
| Download URL | selltostate_cli-0.1.0.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4e062fdb111b8dbe35188e53c0d79483670352f0fb1c2e143aca5871b5a849a
|
|
BLAKE2b-256 checksum How to use checksums |
01876025cc834e7224cd9f3e51766ac815fc08ec84a221e23a43d317433060b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / selltostate_cli-0.1.0-py3-none-any.whl
| Download URL | selltostate_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9bbbe03c38cf9fa7d42884cfc28280d76426e8d7ae1f20ffdbe729870fc712de
|
|
BLAKE2b-256 checksum How to use checksums |
dc9c0bbe15df73853eb58c13575e893f07d11ead254e93e85c64bc356b5df3fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for selltostate-cli 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.