Quick start
Three steps to your first request.
- Create a workspace. Sign up at /signup. We seed every new account with 1,000 free credits every month — no card required.
- Generate an API key. In your dashboard, go to API keys → Create key. The secret is shown once — copy it immediately.
- 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.
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/summaryDirect 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/researchStructured 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/searchRaw 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/extractURL → 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/crawlWalk 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.
Smart Search
A direct, cited answer to any question — synthesized from the live web in a single call.
| Endpoint | GET /api/summary |
|---|---|
| Cost | 2 credits per call |
| Typical time | 1–3 seconds |
| Best for | One-shot lookups, real-time agents, customer support |
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
q | string | Yes | The question you want answered. |
Example response
{
"query": "how does TLS 1.3 handshake work",
"answer": "TLS 1.3 reduces the handshake to a single round trip [1]. The client sends its key share in the first message, allowing the server to derive shared secrets and begin encrypting data immediately [2]...",
"follow_up_questions": null,
"images": [],
"results": [
{
"url": "https://datatracker.ietf.org/doc/html/rfc8446",
"title": "RFC 8446 — TLS 1.3",
"content": "The Transport Layer Security (TLS) protocol provides...",
"score": 0.94,
"raw_content": null,
"favicon": "https://www.google.com/s2/favicons?domain=datatracker.ietf.org&sz=64"
}
],
"response_time": 1.42,
"request_id": "eede70ba-9e26-4b00-8d6f-f04ac23c0fbe"
}The answer contains inline citations like [1], [2] referring to the index of each entry in results.
Deep Search
Multi-step research: plans sub-questions, runs parallel searches, ranks sources, extracts clean content, and synthesizes a structured cited report.
| Endpoint | GET /api/research |
|---|---|
| Cost | 10 credits per call |
| Typical time | 10–30 seconds |
| Best for | Topic research, briefings, market intelligence, reports |
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
q | string | Yes | The topic you want researched. |
Example response
{
"query": "impact of AI on grid power demand",
"answer": "## Executive summary\n\nGlobal data-centre electricity use is rising fast...\n\n## Key drivers\n- Training runs at scale [1]\n- Inference demand [2]\n...",
"follow_up_questions": [
"current global data-centre electricity consumption",
"projected AI workload electricity demand 2025–2030",
"grid upgrade investments by hyperscalers",
"regulatory responses to data-centre power use"
],
"images": [],
"results": [ /* ranked sources */ ],
"response_time": 18.2,
"request_id": "..."
}The shape is identical to Smart Search, with two differences: answer is a longer-form Markdown report (with ## headings and bullets), and follow_up_questions contains the sub-questions the agent explored.
Search
Ranked web results — title, URL, snippet. No synthesis. Use when your agent wants to pick sources itself.
| Endpoint | GET /api/search |
|---|---|
| Cost | 1 credit (depth=basic) or 2 credits (depth=advanced) |
| Typical time | 0.5–2 s |
| Best for | Agents that read or summarize sources themselves; classic search UIs. |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
q | string | — | Search query (required). |
category | enum | general | general · images · videos · news |
depth | enum | basic | advanced aggregates up to 20 candidates, AI-ranks them, and attaches a score (0–1) to each result. |
page | int | 1 | 1-indexed result page (basic only). |
Sample response (advanced)
{
"query": "kubernetes pod scheduling",
"page": 1,
"category": "general",
"source": "websearch",
"results": [
{
"title": "Pod Scheduling — Kubernetes Documentation",
"url": "https://kubernetes.io/docs/concepts/...",
"snippet": "...",
"engine": null,
"score": 0.94
}
]
}Extract
Fetch any URL and return clean Markdown, text, or a structured outline — boilerplate stripped.
| Endpoint | GET /api/extract |
|---|---|
| Cost | 1 credit per 10 basic pages, or 1 per 5 advanced pages |
| Typical time | 1–4 s per page |
| Best for | RAG ingest of known URLs; pulling clean article bodies. |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
url | string | — | URL to extract (required). |
fmt | enum | all | markdown · text · structured · all |
depth | enum | basic | Advanced does deeper cleanup at higher cost. |
Crawl
BFS-crawl a single domain, respecting robots.txt. Returns extracted content for every page visited.
| Endpoint | GET /api/crawl |
|---|---|
| Cost | 1 credit + 1 credit per 10 pages visited |
| Typical time | Up to time_budget seconds (max 120) |
| Best for | Whole-site ingest: docs, knowledge bases, marketing sites. |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
url | string | — | Seed URL (required). |
max_pages | int | 10 | Cap on total pages (1–40). |
max_depth | int | 2 | Link depth from the seed (0–4). |
time_budget | float | 30.0 | Wall-clock cap in seconds (5–120). |
Response shape
Both endpoints return identical JSON. Your agent can treat them interchangeably — pick the depth you need.
| Field | Type | Description |
|---|---|---|
query | string | Echo of the original query. |
answer | string | null | The synthesized prose with inline [N] citations. |
follow_up_questions | string[] | null | Sub-questions explored (Deep Search only). |
images | string[] | Reserved. Empty for now. |
results | Result[] | The sources used, in relevance order. |
response_time | number | Seconds the request took. |
request_id | string | UUID. Useful for support tickets. |
Result object
url | string | The source URL. |
title | string | The page title. |
content | string | Excerpt or snippet used in synthesis. |
score | number | Relevance score 0–1. |
favicon | string | null | Favicon URL for display. |
raw_content | string | null | Reserved. null for now. |
Errors
Errors come back as JSON with an HTTP status that matches.
| Status | Meaning | What to do |
|---|---|---|
| 400 | Bad request | Fix params and retry. |
| 401 | Missing / invalid key | Check the Authorization header. |
| 402 | Insufficient credits | Top up or upgrade plan. |
| 404 | Not found | Check the URL. |
| 429 | Rate limited | Back off; respect Retry-After. |
| 5xx | Server error | Retry 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
429with aRetry-Afterheader. - 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.