openSERPConsole
Developer examples

Your language.
Every endpoint.

Runnable requests for every supported search engine, projects, API keys and usage. Start with a free quote.

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.

LanguageFree quoteRequirements
cURL / Bashbash languages/curl/cli.sh quotecurl, jq, uuidgen
JavaScriptnode languages/javascript/cli.mjs quoteNode.js 24+
TypeScriptnode languages/typescript/cli.ts quoteNode.js 24+
Pythonpython3 languages/python/cli.py quotePython 3.10+
Gogo run ./languages/go quoteGo 1.23+
PHPphp languages/php/cli.php quotePHP 8.1+ with cURL
Rubyruby languages/ruby/cli.rb quoteRuby 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.

CaseEndpointExecution
automaticauto.searchRealtime search
firehosefirehose.searchRealtime search
googlegoogle.searchRealtime search
bingbing.searchRealtime search
yahooyahoo.searchRealtime search
navernaver.searchRealtime search
yandexyandex.searchRealtime search
baidubaidu.searchRealtime search
duckduckgoduckduckgo.searchRealtime search
mojeekmojeek.searchRealtime search
deepseekdeepseek.searchRealtime search
nimblenimble.searchRealtime search
exaexa.searchRealtime 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.

CaseRequestAuthentication
searchPOST /api/searchScoped API key
quotePOST /api/quotePublic / optional key
markdownPOST /api/search/markdownScoped API key
statusGET /api/status?engine={ENGINE}Public / optional key
accountGET /api/accountScoped API key
projectsGET /api/projectsConsole session
create-projectPOST /api/projectsConsole session
rename-projectPATCH /api/projects/{PROJECT_ID}Console session
keysGET /api/keysConsole session
create-keyPOST /api/keysConsole session
update-keyPATCH /api/keys/{KEY_ID}Console session
revoke-keyDELETE /api/keys/{KEY_ID}Console session
usageGET /api/account/usage?days=7Console session
healthGET /api/healthPublic
ledgerGET /api/account/ledgerScoped API key
payment-historyGET /api/account/exports/payments.csvScoped API key
daily-spendGET /api/account/exports/daily-spend.csvScoped API key
starting-pricesGET /api/pricingPublic

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.