Generate a free API key without signing up and set OPENSERP_API_KEY before running a search. Quotes and status are public. Sign in in the same browser to attach your keys and usage to your account.
Choose your language
Unpack the MIT-licensed bundle and run a command from the openserp-examples directory. Quotes compare current prices and health without making a paid search.
| Language | Free quote | Requirements |
|---|---|---|
| cURL / Bash | bash languages/curl/cli.sh quote | curl, jq, uuidgen |
| JavaScript | node languages/javascript/cli.mjs quote | Node.js 24+ |
| TypeScript | node languages/typescript/cli.ts quote | Node.js 24+ |
| Python | python3 languages/python/cli.py quote | Python 3.10+ |
| Go | go run ./languages/go quote | Go 1.23+ |
| PHP | php languages/php/cli.php quote | PHP 8.1+ with cURL |
| Ruby | ruby languages/ruby/cli.rb quote | Ruby 3+ |
| C# | dotnet run --project languages/csharp -- quote | .NET 10 |
Preview before sending
export OPENSERP_ENGINE='bing.search' export OPENSERP_QUERY='Cloudflare Workers' export OPENSERP_MAX_COST_USD='0.01' node languages/javascript/cli.mjs search --dry-run
--dry-run prints the method, URL and body without sending a request or displaying credentials. Use --all-dry-run to preview all 33 cases. Searches and Markdown retrieval can spend prepaid credits when dry-run is removed. The samples use a $0.01 cap; the service default is $1 when omitted.
Search engine examples
Replace quote with an engine case below. Each has its own entry point and guide in every language.
| Case | Endpoint | Execution |
|---|---|---|
| automatic | auto.search | Realtime search |
| firehose | firehose.search | Realtime search |
google.search | Realtime search | |
| bing | bing.search | Realtime search |
| yahoo | yahoo.search | Realtime search |
| naver | naver.search | Realtime search |
| yandex | yandex.search | Realtime search |
| baidu | baidu.search | Realtime search |
| duckduckgo | duckduckgo.search | Realtime search |
| mojeek | mojeek.search | Realtime search |
| deepseek | deepseek.search | Realtime search |
| nimble | nimble.search | Realtime search |
| exa | exa.search | Realtime search |
Availability, source capabilities and prices are live. Check a quote and source status before paid work. Website engine paths are guides; search requests use the JSON endpoint identifier.
Every documented REST operation
Replace quote in any language command with the case name. The bundle covers the REST search, account and project operations plus health and ledger. Anonymous key generation happens on the website.
| Case | Request | Authentication |
|---|---|---|
search | POST /api/search | Scoped API key |
quote | POST /api/quote | Public / optional key |
markdown | POST /api/search/markdown | Scoped API key |
status | GET /api/status?engine={ENGINE} | Public / optional key |
account | GET /api/account | Scoped API key |
projects | GET /api/projects | Console session |
create-project | POST /api/projects | Console session |
rename-project | PATCH /api/projects/{PROJECT_ID} | Console session |
keys | GET /api/keys | Console session |
create-key | POST /api/keys | Console session |
update-key | PATCH /api/keys/{KEY_ID} | Console session |
revoke-key | DELETE /api/keys/{KEY_ID} | Console session |
usage | GET /api/account/usage?days=7 | Console session |
health | GET /api/health | Public |
ledger | GET /api/account/ledger | Scoped API key |
payment-history | GET /api/account/exports/payments.csv | Scoped API key |
daily-spend | GET /api/account/exports/daily-spend.csv | Scoped API key |
starting-prices | GET /api/pricing | Public |
Keys and usage
Generate a scoped key in your console and supply OPENSERP_API_KEY through your environment. Use markdown --output results.json to save the search results and Markdown returned in the same request.
Project/key management and account-wide analytics require your own signed-in console session. Multiple keys share a project and prepaid wallet; REST and MCP contribute to the same usage charts. The bundle includes scope tables, configuration variables, idempotency and realtime Markdown guidance.
MCP examples included
The bundle contains JavaScript, TypeScript and Python MCP SDK clients, client configuration files, OAuth discovery and all five tool schemas. Read the MCP integration guide for the Streamable HTTP endpoint and permissions.
Verified without paid test calls
Offline checks exercise all eight clients, all 33 request cases, engine entry points, authentication, JSON escaping, error responses, credential redirects and realtime Markdown responses against a local fixture server. JavaScript and Python MCP clients have also returned live free quotes successfully.