Your first Brouky API call
Steps
- 01
Create an API key
On your Brouky developer page, create a key. It starts with brk_live_ and is shown once. Keep it on the server, never in a browser app.
- 02
Make a call with curl
Every tool is a POST to /v1/<tool> with a JSON body. This one asks the data agent a question.
curlcurl https://api.brouky.tech/functions/v1/brouky-api/v1/ask \ -H "Authorization: Bearer $BROUKY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "Most active seed investors in Germany in 2025"}' - 03
From JavaScript
The same call with fetch (Node 18+, Deno, Bun or a server route).
JavaScriptconst r = await fetch("https://api.brouky.tech/functions/v1/brouky-api/v1/find_investors", { method: "POST", headers: { Authorization: `Bearer ${process.env.BROUKY_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ website: "https://yourstartup.com", raising_stage: "seed", investor_region: "europe" }), }) const { success, data, summary, error } = await r.json() if (!success) throw new Error(error.message) console.log(summary) for (const v of data.investors) console.log(v.fit_pct, v.name, v.url) - 04
From Python
With requests.
Pythonimport os, requests r = requests.post( "https://api.brouky.tech/functions/v1/brouky-api/v1/get_investor", headers={"Authorization": f"Bearer {os.environ['BROUKY_API_KEY']}"}, json={"key": "rockaway-ventures"}, timeout=60, ) body = r.json() print(body["summary"]) - 05
Read the response
Every response has the same shape: data (the structured result), summary (a short readable answer), charts (chart specs), url (the full view on brouky.tech) and credits (what the call cost). Errors return success: false with a code and a message.
Response{ "success": true, "operation": "find_investors", "summary": "...", "data": { ... }, "charts": [ ... ], "url": "https://brouky.tech/share/vcfinder/...", "credits": { "charged": 3, "remaining": 37 } } - 06
Handle the common errors
401 means the key is missing, wrong or revoked. 402 upgrade_required means the tool needs a paid plan; 402 insufficient_credits means the balance is too low. 429 means the rate limit (60 a minute, 5,000 a day); wait until X-RateLimit-Reset.
If something goes wrong
Still stuck? Write to us and include the error message.
More tutorials
Menus in Claude, ChatGPT and other tools change from time to time. The server URL and the sign-in stay the same.
