Quickstart flow
Four steps, start to finish - from copying your key to reading back an answer.1
Get your API key
Your key lives in the dashboard’s Profile section. Every call below sends it as a Bearer-style header, prefixed
x-api-key instead of Bearer.dashboard → Profile2
Submit your questions
One call can carry several prompts across several platforms and up to 10 locations - one row is created per question × platform × location.
POST /submit/3
Poll for results
Every row starts
pending. Poll the same batch until each one turns success or failed.GET /results/{request_id}/4
Read the answer
A successful row’s
raw_response.text is the rendered answer. Failed rows refund their own credit.raw_response.textThis is the whole surface. Three endpoints, total: check your balance any time before you submit, submit a batch, poll it. There’s no fourth thing to learn.
Authentication
One key, one header - but note the prefix isn’tBearer.
Where to get it
Your API key is shown in the Profile section of the NodeMaven dashboard - the same key used across NodeMaven’s base API, not a separate token per product.
How to send it
Authorization: x-api-key <your key> on every request. Note the literal prefix is x-api-key, not Bearer.Errors and status codes
The body shape depends on why a request failed - a validation problem reports field-by-field, an operational one reports a single message.Limits
Defaults below - ask support if your workload needs more headroom.Platforms and targeting
Every question is sent to one or more platforms, aimed at one or more locations (each with a required country and, optionally, a region and city).perplexity is still a valid value in the request schema, but the platform is currently unavailable - leave it out of platforms for now. It’ll be listed as Available here once that changes.
region and city are both optional and both normalized for you - send a region’s display name or its code, and a city in any case, and the request still resolves correctly. Each row in the response carries the exact location it ran against, so a multi-location submit can be split back apart client-side by grouping on country/region/city.
Credits
One credit is spent per question × platform pair, upfront - and refunded automatically if that specific row fails.GET /api/v2/base/llm/balance/
string
required
x-api-key <your key>200 Response
Queries
Submit a batch, then poll the samerequest_id until every row leaves pending.
POST /api/v2/base/llm/submit/
string
required
x-api-key <your key>questions × platforms credits and returns immediately - every row starts pending, nothing here is the final answer yet.
GET /api/v2/base/llm/results/{request_id}/
string
required
x-api-key <your key>request_id. Call this again a few seconds later for whatever’s still pending.
200 Response
failed row’s credit has already been refunded by the time you see it - raw_response stays null, there’s nothing else to read.
raw_response.sources is best-effort, not guaranteed. ChatGPT populates it when (and only when) it actually ran a web search for that answer - plenty of prompts never trigger that, and get an empty [] back, which is normal, not an error. Gemini only ever returns citations through this same field (never inline in text), and does so noticeably less often than ChatGPT - an empty list from Gemini isn’t a sign anything’s broken, and shorter or plainer answers from Gemini than ChatGPT are also expected, not a bug.Polling for results
There’s no webhook - results only ever arrive by asking again.How long it takes
Most rows resolve in 20 to 90 seconds, occasionally longer - a real Chrome session is rendering the answer on the other end. Poll every few seconds rather than continuously.
The three states
pending → still rendering. success → read raw_response.text. failed → already refunded, nothing to retry manually.Billing timing
Credits are charged at submit, not on success - a row that later fails refunds itself the moment it’s marked
failed, before you even poll.Batching platforms
One
request_id can hold rows across every platform you asked for - poll it once and read whichever rows have already turned.Full walkthrough
Every step above, chained into one script: check your balance, ask two platforms the same question, wait it out, then read both answers.For any questions contact support@nodemaven.com.