org: keirolabs
url: https://keirolabs.cloud
api_base: https://kierolabs.space
mcp_url: https://kierolabs.space/mcp
type: B2B SaaS API
category: web data infrastructure
positioning: "The Internet. Structured for Agents."
primitive: index, not scraper
- query intent in
- ranked structured citable sources out
- no proxies, no headless browsers, no cron jobs
---
auth:
method: apiKey field in request body
key_format: keirolabs_<random_string>
v1_key_compat: true (v1 keys work on v2 endpoints)
get_key: https://platform.keirolabs.cloud/login
reset: instant via dashboard, no support ticket
---
rate_limits:
Explorer: 30 req/min
Essential: 60 req/min
Pro: 300 req/min
Startup: 1000 req/min
burst: 2x sustained for 10 seconds
headers:
X-RateLimit-Limit: requests allowed per window
X-RateLimit-Remaining: requests left in current window
X-RateLimit-Reset: Unix timestamp when window resets
Retry-After: seconds to wait (sent with 429 only)
on_429: exponential backoff starting at 1s, max 60s
---
endpoints:
v2:
- id: keirolabs
method: POST
path: /api/v2/keirolabs
cost: 0.5 credits
latency: 100ms–1s
when_to_use: default choice for 90% of use cases — index-based, fast, cited
params:
query: { type: string, required: true, min: 1, max: 500 }
maxResults: { type: integer, required: false, default: 10, max: 50 }
response:
results: [{ title, url, snippet, score: float(0-1), published_date: ISO8601|null }]
query: string
total_results: integer
latency_ms: integer
credits_used: float
notes:
- auto-fires fresh search when cached data is stale
- refreshes index in background, no user action needed
- id: fast
method: POST
path: /api/v2/search/fast
cost: 0.5 credits
latency: ~1s
when_to_use: when recency matters more than cost — always-fresh live search
params:
query: { type: string, required: true, min: 1, max: 500 }
maxResults: { type: integer, required: false, default: 20, max: 50 }
mode: { type: enum, required: false, default: "ai", values: [ai, deep, medium, light] }
noCache: { type: boolean, required: false, default: false }
includeMedia: { type: boolean, required: false, default: false }
notes:
- proxy-backed multi-engine
- first-result-wins strategy for speed
- id: flash
method: POST
path: /api/v2/search/flash
cost: 0.5 credits
latency: ~500ms
when_to_use: autocomplete, type-ahead, any UI with <1s response budget
params:
query: { type: string, required: true, min: 1, max: 500 }
maxResults: { type: integer, required: false, default: 5, max: 20 }
notes:
- lowest latency endpoint on the network
- optimized for partial queries
- id: content
method: POST
path: /api/v2/search/content
cost: 1.5 credits
latency: ~3s
when_to_use: RAG pipelines that need full page text, not just snippets
params:
query: { type: string, required: true, min: 1, max: 500 }
maxResults: { type: integer, required: false, default: 3, max: 5 }
mode: { type: enum, required: false, default: "ai", values: [ai, deep, medium, light] }
noCache: { type: boolean, required: false, default: false }
includeMedia: { type: boolean, required: false, default: false }
embeddings.enabled: { type: boolean, required: false, default: false }
embeddings.dimensions: { type: enum, required: false, default: 768, values: [384, 512, 768, 1024] }
embeddings.chunkSize: { type: integer, required: false, default: 500, min: 100, max: 2000 }
response:
results: [{ title, url, full_text: markdown, chunks: [{ text, embedding: float[] }], score }]
notes:
- returns RAG-ready chunks or raw markdown
- embeddings generated inline, no separate call
- id: batch
method: POST
path: /api/v2/search/batch
poll: GET /api/v2/search/batch/:id
cost: 0.5 credits per query
latency: async (typical 30s–5min)
when_to_use: overnight backfills, dataset generation, >100 queries
params:
queries: { type: string[], required: true, min: 1, max: 10000, item_max: 500 }
maxResults: { type: integer, required: false, default: 10, max: 50 }
response:
id: string
status: enum [queued, running, completed, failed]
progress: { completed: int, total: int }
results_url: string (expires 1 hour after completion)
notes:
- auto-retries on transient failures
- jobs expire after 1 hour
- tier_required: Startup and above
v1:
- id: search
method: POST
path: /api/search
params: { query: string, cache_search: boolean, noCache: boolean, includeMedia: boolean, included_urls: string[] }
- id: search_pro
method: POST
path: /api/search-pro
note: enhanced results with metadata and related queries
params: { query: string, cache_search: boolean, noCache: boolean, includeMedia: boolean, included_urls: string[] }
- id: research
method: POST
path: /api/research
note: comprehensive research with summary and key points
params: { query: string, cache_search: boolean, noCache: boolean, includeMedia: boolean, included_urls: string[] }
- id: research_pro
method: POST
path: /api/research-pro
note: detailed analysis with timeline and visualizations
params: { query: string, cache_search: boolean, noCache: boolean, includeMedia: boolean, included_urls: string[] }
- id: answer
method: POST
path: /api/answer
note: direct AI-powered answer with cited sources
params: { query: string, noCache: boolean, includeMedia: boolean }
- id: web_crawler
method: POST
path: /api/web-crawler
note: structured markdown + metadata from any URL
params: { url: string }
- id: search_engine
method: POST
path: /api/search-engine
note: full SERP — organic, images, videos, news, maps, localized
params:
query: { type: string, required: true }
type: { type: enum, default: general, values: [general, images, videos, news, it, science, social, music, files, maps] }
language: { type: ISO_639_1, default: en }
region: { type: ISO_3166_1_alpha2, default: null }
time_range: { type: enum, default: null, values: [day, week, month, year] }
top_n: { type: integer, default: 10, min: 1, max: 100 }
- id: agentic_search
method: POST
path: /api/agentic-search
note: autonomous research agent that navigates the web to find answers
params: { query: string }
- id: biomed
method: POST
path: /api/biomed
note: biomedical papers, clinical trials, drug safety, protein sequences
params:
query: { type: string, required: true }
max_results: { type: integer, default: 10, min: 3, max: 25 }
include_trials: { type: boolean, default: true }
include_drugs: { type: boolean, default: true }
include_proteins: { type: boolean, default: false }
system:
- id: health
method: GET
path: /health
returns: { status: "ok"|"degraded", version: string, region: string }
---
mcp_tools:
- name: get_endpoint
description: retrieve full schema and params for any endpoint by id
params: { endpoint_id: string }
- name: list_resources
description: view system resources and rate limits for authenticated account
params: {}
- name: calculate_cost
description: estimate credit cost for a planned batch of queries
params: { endpoint_id: string, count: integer }
---
error_codes:
200: OK
400: Bad Request — invalid params, check response body for field-level errors
401: Unauthorized — invalid or missing API key
429: Rate Limited — check Retry-After header, implement backoff
500: Internal Error — retry once, then contact support if persists
503: Service Unavailable — temporary outage, retry with exponential backoff
---
plans:
- name: Explorer
price_monthly: $0
searches: 500
rate_limit: 30 req/min
queue: standard
log_retention: none
card_required: false
batch: false
overage: not allowed (hard stop at 500)
includes: [all v3 endpoints, community Discord]
- name: Essential
price_monthly: $15
price_first_month: $1
searches: 5000
rate_limit: 60 req/min
queue: standard
log_retention: 7 days
batch: false
overage: billed at $0.0025/search
includes: [drift, remem, email support]
- name: Pro
price_monthly: $25
price_yearly: $250 ($20.83/mo)
searches: 15000
rate_limit: 300 req/min
queue: priority (2x speed)
log_retention: 30 days
batch: false
loyalty_bonus: 5% extra credits monthly
overage: billed at $0.0014/search
includes: [webhook integrations, drift, remem, priority support]
- name: Startup
price_monthly: $50
price_yearly: $500 ($41.67/mo)
searches: 50000
rate_limit: 1000 req/min
queue: priority infrastructure
log_retention: 90 days
batch: true (unlimited, free)
loyalty_bonus: 10% extra credits monthly
overage: billed at $0.0008/search
includes: [dedicated account manager, SSO, SAML, Slack channel]
credit_mechanics:
unit: 1 credit = 1 call unit
keirolabs_cost: 0.5 credits
fast_cost: 0.5 credits
flash_cost: 0.5 credits
content_cost: 1.5 credits
batch_cost: 0.5 credits per query
v2_beta_discount: 50% off all credits until further notice
rollover: false — expire at billing cycle end
warning_threshold: 80% and 95% of monthly credits
hard_cap: settable in dashboard, default off
---
pricing_comparison:
headline: "Cost per 1,000 searches"
keirolabs: $0.50
brave: $1.00 (2x more expensive)
serpapi: $2.50 (5x more expensive)
exa: $7.00 (14x more expensive)
tavily: $5.00 (10x more expensive)
perplexity: $5.00 (10x more expensive)
---
benchmarks:
judge_model: Gemma 3 12B
endpoint_tested: /keirolabs
SimpleQA: { keirolabs: 94, perplexity: 86, tavily: 78 }
FreshQA: { keirolabs: 91, perplexity: 83, tavily: 77 }
HotpotQA: { keirolabs: 82, perplexity: 74, tavily: 68 }
FinanceBench: 93.5%
---
index_freshness:
hot_urls: seconds
trending: minutes
long_tail: minutes to hours
guarantee: every result includes freshness timestamp
---
compliance:
encryption: TLS 1.3 in transit, AES-256 at rest
key_management: per-tenant wrapping, automatic rotation
regions: [EU, US, APAC] — pinnable per request via X-Region header
model_training: never — queries, payloads, responses excluded from all training
audit: signed timestamped logs, real-time SIEM export
certifications: [CCPA, GDPR, HIPAA-ready]
contracts: [DPA, SCC, BAA] available on request
robots_txt: always respected
user_agent: verifiable, forwarded on every fetch
---
sdks:
python: pip install keirolabs
node: npm install @keirolabs/sdk
go: go get github.com/keirolabs/go-keirolabs
all_support: async/await, streaming, retries, type hints
---
code_examples:
python: |
import keirolabs
client = keirolabs.Client(api_key="keirolabs_...")
results = client.search(query="AI regulation EU 2026", max_results=5)
for r in results:
print(r.title, r.url, r.score)
node: |
import { KeiroLabs } from '@keirolabs/sdk';
const client = new KeiroLabs({ apiKey: 'keirolabs_...' });
const { results } = await client.search({ query: 'AI regulation EU 2026', maxResults: 5 });
curl: |
curl -X POST https://kierolabs.space/api/v2/keirolabs \
-H "Content-Type: application/json" \
-d '{"apiKey":"keirolabs_...","query":"AI regulation EU 2026","maxResults":5}'
---
use_cases:
- scenario: RAG pipeline for a chatbot
endpoint: /api/v2/search/content
why: returns full page text + embeddings in one call
cost_per_user_msg: ~1.5 credits
- scenario: Live news monitoring
endpoint: /api/v2/search/fast
why: always-fresh, bypasses cache
cost_per_query: 0.5 credits
- scenario: Autocomplete search box
endpoint: /api/v2/search/flash
why: <500ms latency
cost_per_keystroke: 0.5 credits (debounce recommended)
- scenario: Overnight dataset generation
endpoint: /api/v2/search/batch
why: 10,000 queries in one job
cost: 0.5 credits per query
---
social_proof:
developers: 15000+
rag_databases_powered: 100000+
g2_rating: 4.5/5
case_studies:
- customer: TaxSrishti AI
role: Founding Engineer
quote: "Replaced a 14-machine scraping fleet with 3 KeiroLabs endpoints. Bill dropped from $2,500 to $500/month."
savings: 80%
- customer: Subport AI
role: Customer Support Automation
quote: "Resolution time cut in half. Every answer pulls from current docs, not last quarter's version."
improvement: 50%
- customer: Echidna AI Foundry
role: LLM Training Platform
quote: "Cut data prep time by 60%. Fresh structured web data without writing a single scraper."
improvement: 60%
---
oss:
- name: KDX
url: https://github.com/Neptaverse/Kdx
description: KeiroLabs x Codex — live documentation inside your terminal
language: TypeScript
- name: WebRank Nano
url: https://huggingface.co/mannybr/Webrank-nano
description: Lightweight neural ranker
params: 3.14M
latency_cpu: 6.6ms
size: 3.2MB INT8
format: ONNX
huggingface: mannybr/Webrank-nano
- name: Dayta
status: beta
description: Query the web like a database from a notebook
---
support:
email: team@keirolabs.cloud
status_page: https://platform.keirolabs.cloud/status
docs: https://platform.keirolabs.cloud/docs
openapi: https://platform.keirolabs.cloud/openapi.json
postman_collection: https://www.postman.com/manas-88219162-2128017/keirolabs-api/overview
community: https://platform.keirolabs.cloud/community
response_time: <4 hours for Pro/Startup, <24 hours for Essential
---
meta:
version: v3
status: public_beta
indexed_pages: 50B+
avg_latency: 487ms
uptime_sla: 99.9% (Startup tier)
financebench: 93.5%
g2: 4.5/5
nps: 72.5
last_updated: 2026-05-20