Documentation

Build with Pellumin.

Two endpoints. One predictable JSON shape. Five minutes from signup to your first cited answer.

Quick start

Three steps to your first request.

  1. Create a workspace. Sign up at /signup. We seed every new account with 1,000 free credits every month — no card required.
  2. Generate an API key. In your dashboard, go to API keys → Create key. The secret is shown once — copy it immediately.
  3. Make your first call.
curl 'https://api.pellumin.com/api/summary?q=how%20does%20TLS%201.3%20work' \
  -H "Authorization: Bearer plm_your_key_here"

That's it. Try it now in the Playground — every endpoint is wired and ready.

Authentication

Every request must include your API key in the Authorization header.

Authorization: Bearer plm_your_key_here

Treat the key like a password — anyone with it can spend your credits. If a key leaks, revoke it from API keys and create a new one.

Never put your key in client-side code. For browser apps, proxy through your own backend so the key stays on the server.

Which endpoint should I use?

We expose five endpoints across two flavours: synthesis (we read the web for you and return a cited answer) and retrieval (you get the raw material and decide what to do with it).

Smart Search

GET /api/summary

Direct cited answer

Cost
2 credits
Typical time
~1–3 s

Use when: Your agent needs a single, cited answer fast — chat replies, support copilots, real-time grounding.

Deep Search

GET /api/research

Structured cited report

Cost
10 credits
Typical time
~10–30 s

Use when: Topic deep-dives that need structured exploration: market intel, briefings, multi-faceted research reports.

Search

GET /api/search

Raw ranked links

Cost
1–2 credits
Typical time
~0.5–2 s

Use when: The agent will read or summarize sources itself. Use `depth=advanced` (2 credits) to get AI relevance scores per result.

Extract

GET /api/extract

URL → clean Markdown

Cost
1 / 10 basic or 1 / 5 advanced pages
Typical time
~1–4 s

Use when: Pull clean Markdown from a single URL you already know — RAG ingest, article summarization, knowledge-base scrape.

Crawl

GET /api/crawl

Walk an entire domain

Cost
1 + 1 per 10 pages
Typical time
Up to your budget (max 120 s)

Use when: Ingest a whole site at once — public docs, knowledge bases, marketing sites — for a corpus or batch index.

Rules of thumb: default to Smart Search for any single question. Escalate to Deep Search only when the user explicitly asks for a report or the topic clearly has multiple facets. Use Search + Extract when you want the agent to control which sources go into its context.

Extract

Fetch any URL and return clean Markdown, text, or a structured outline — boilerplate stripped.

EndpointGET /api/extract
Cost1 credit per 10 basic pages, or 1 per 5 advanced pages
Typical time1–4 s per page
Best forRAG ingest of known URLs; pulling clean article bodies.

Parameters

NameTypeDefaultDescription
urlstringURL to extract (required).
fmtenumallmarkdown · text · structured · all
depthenumbasicAdvanced does deeper cleanup at higher cost.

Crawl

BFS-crawl a single domain, respecting robots.txt. Returns extracted content for every page visited.

EndpointGET /api/crawl
Cost1 credit + 1 credit per 10 pages visited
Typical timeUp to time_budget seconds (max 120)
Best forWhole-site ingest: docs, knowledge bases, marketing sites.

Parameters

NameTypeDefaultDescription
urlstringSeed URL (required).
max_pagesint10Cap on total pages (1–40).
max_depthint2Link depth from the seed (0–4).
time_budgetfloat30.0Wall-clock cap in seconds (5–120).

Response shape

Both endpoints return identical JSON. Your agent can treat them interchangeably — pick the depth you need.

FieldTypeDescription
querystringEcho of the original query.
answerstring | nullThe synthesized prose with inline [N] citations.
follow_up_questionsstring[] | nullSub-questions explored (Deep Search only).
imagesstring[]Reserved. Empty for now.
resultsResult[]The sources used, in relevance order.
response_timenumberSeconds the request took.
request_idstringUUID. Useful for support tickets.

Result object

urlstringThe source URL.
titlestringThe page title.
contentstringExcerpt or snippet used in synthesis.
scorenumberRelevance score 0–1.
faviconstring | nullFavicon URL for display.
raw_contentstring | nullReserved. null for now.

Errors

Errors come back as JSON with an HTTP status that matches.

StatusMeaningWhat to do
400Bad requestFix params and retry.
401Missing / invalid keyCheck the Authorization header.
402Insufficient creditsTop up or upgrade plan.
404Not foundCheck the URL.
429Rate limitedBack off; respect Retry-After.
5xxServer errorRetry with exponential backoff.

A 402 response includes the required and current balance so your agent can decide whether to upgrade, top up, or surface the limit to the user.

{
  "detail": {
    "error": "insufficient_credits",
    "balance": 4,
    "required": 10,
    "message": "You need 10 credit(s) for this request but have only 4."
  }
}

Rate limits

Limits scale with your plan. The defaults:

  • Up to 10 concurrent requests per workspace.
  • Sustained throughput depends on plan. Hitting the limit returns 429 with a Retry-After header.
  • Identical queries within 24 hours are served from cache — near-instant, still charged.

Need higher limits? Talk to us about Enterprise.

FAQ

Do I need a credit card to start?

No. Sign up gives you 1,000 credits every month — free, no card on file.

What counts as one credit?

Smart Search costs 2 credits. Deep Search costs 10. Pay-As- You-Go credits are $0.008 each.

How fresh are the results?

Real time. Every search hits live sources at request time.

Is the content safe to feed my AI?

Yes — every fetched page passes through a built-in firewall that strips prompt-injection attempts, redacts PII, and flags unsafe URLs before the content ever reaches your AI.

Can I use this from the browser?

CORS is open, so technically yes — but never put your API key in client-side code. Always proxy through your own backend in production.