API & Integrations
Search API, MCP server, and plugin ecosystem for agents, CLI tools, and LLM integrations. Tokenless access with a small allowance, or sign up for a free API key with higher limits.
https://arlong.org2 req/hour (tokenless) · 80 req/30min (with key)
https://arlong.org/mcpAuthentication
An API key raises your rate limit from 2 requests/hour to 80 requests/30 minutes. Create your free key at /api/dashboard.
# Header auth (recommended) curl "https://arlong.org/api/arlong/search?q=python" \ -H "Authorization: Bearer al_xxxx" # Query param auth curl "https://arlong.org/api/arlong/search?q=python&key=al_xxxx"
import requests r = requests.get( "https://arlong.org/api/arlong/search", params={"q": "python programming"}, headers={"Authorization": "Bearer al_xxxx"} ) data = r.json()
const res = await fetch( "https://arlong.org/api/arlong/search?q=javascript", { headers: { "Authorization": "Bearer al_xxxx" } } ); const data = await res.json();
Search Live
Search the web and return structured results with relevance scores, domain reputation, and corroboration metadata.
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
q | string | — | Required. Search query. |
page | integer | 1 | Result page (1-based). |
mode | string | balanced | instant for low latency, balanced for extracted evidence, or deep for broader coverage. |
max_results | integer | 10 | Return 1–20 ranked results. |
include_content | boolean | true | Include clean page text when available. Always false in instant mode. |
source_type | string | any | Prefer academic, official, news, discussion, or long-form sources. |
key | string | — | API key (alt to Authorization header). |
Response
curl "https://arlong.org/api/arlong/search?q=quantum+computing&pretty=1"
r = requests.get("https://arlong.org/api/arlong/search", params={"q": "quantum computing"}) results = r.json()["results"] for r in results[:3]: print(f"{r['title']} — {r['url']}")
const { results } = await fetch( "https://arlong.org/api/arlong/search?q=quantum+computing" ).then(r => r.json()); results.slice(0, 3).forEach(r => console.log(r.title, r.url) );
Result fields
| Field | Type | Description |
|---|---|---|
title | string | Page title. |
url | string | Full URL. |
snippet | string | Contextual excerpt from the page. |
domain | string | Root domain. |
favicon | string | Favicon URL. |
score | float | Relevance score (0–100+). Higher = more relevant. |
category | string | Result category: general, news, official, tech. |
date | string|null | Extracted date if available. |
quality_score | float | Combined relevance, trust, and authority score from 0–1. |
rank | integer | Final result position after quality ranking. |
Answer Live
Ask a question and get a grounded AI answer with cited sources. The response includes the answer text, source list, and epistemic state.
Try it
Response
{
"answer": "Retrieval-augmented generation (RAG) is a technique that...",
"sources": [
{"title": "...", "url": "https://...", "snippet": "..."}
],
"epistemic_state": "4 independent domains examined; 3 contain a closely overlapping claim (not a factuality verdict)"
}
Security states
security_analysis.action is allow, review, block, or unknown. Review content is sanitised and may be used cautiously; blocked content is withheld. Unknown means no raw document was successfully scanned and can never be treated as allow.
| Risk level | Meaning | Action |
|---|---|---|
none / low | No model-directed threat; low-confidence structural signal at most. | Allow. |
review | Ambiguous instruction-like or hidden-page features. | Use only sanitised visible content. |
high / critical | Instruction override, concealed model direction, credential/tool threat, or unsafe fetch target. | Block content. |
unknown | Retrieval or security preflight failed; scanned_chars is zero. | Return no content. |
Status Live
Live health snapshot of the model router and neural module.
Try it
Error Responses
| Code | Meaning | Retry? |
|---|---|---|
400 | Missing query parameter. | Fix the request. |
401 | Invalid or revoked API key. | Get a new key at /api/dashboard. |
429 | Rate limit exceeded. Response includes retry_after. | Wait for retry_after seconds. |
500 | Internal server error. | Retry after a short delay. |
503 | AI busy or service under maintenance. | Wait for retry_after seconds. |
MCP Server Live
Arlong exposes a full Model Context Protocol server, giving Claude Desktop, Cursor, and any MCP-compatible client access to web search, grounded AI answers, and live system status.
https://arlong.org/mcpNo local Python required. Add your API key in the MCP client's Authorization header.
Remote Setup (Claude Desktop / Cursor)
Add to your MCP client config:
{
"mcpServers": {
"arlong": {
"url": "https://arlong.org/mcp",
"headers": {
"Authorization": "Bearer al_xxxx"
}
}
}
}
{
"mcpServers": {
"arlong": {
"command": "npx",
"args": ["mcp-remote", "https://arlong.org/mcp"],
"env": {
"ARLONG_API_KEY": "al_xxxx"
}
}
}
}
Local Setup (stdio transport)
Run the MCP server as a local stdio process:
ARLONG_BASE_URL=https://arlong.org ARLONG_API_KEY=al_xxxx python mcp_arlong.py
Then point your MCP client at the script path:
{
"mcpServers": {
"arlong": {
"command": "python",
"args": ["/path/to/mcp_arlong.py"]
}
}
}
Available Tools
| Tool | Description |
|---|---|
arlong_quick |
Low-token plain links with no extraction, embeddings, AI evaluation, or generated answer. |
arlong_search |
Serper-primary web search with neural relevance, independent reputation/security states, screened content, and claim-overlap telemetry. |
arlong_deep |
Parallel Arlong research lanes and semantic analysis across up to 20 sources, with trust ranking, evidence-gap repair, and claim-level records. |
arlong_extract |
Extract up to 12,000 characters of clean page text with prompt-injection checks and an explicit extraction_status. |
arlong_answer |
Grounded AI answer with cited sources, explicit evidence claims, and an epistemic state that distinguishes textual overlap from factual verification. |
arlong_status |
Live health snapshot of the model router (RPM/RPD/TPM/TPD usage + cooldowns) and neural module (local vs remote embeddings). |
Tool schemas
{
"name": "arlong_search",
"description": "Search the web...",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string", "description": "The search query" },
"page": { "type": "integer", "default": 1 },
"mode": { "enum": ["instant", "balanced", "deep"] },
"max_results": { "type": "integer", "maximum": 20 }
},
"required": ["query"]
}
}
{
"name": "arlong_extract",
"inputSchema": {
"type": "object",
"properties": {
"url": { "type": "string" },
"query": { "type": "string" },
"max_chars": { "type": "integer", "maximum": 12000 }
},
"required": ["url"]
}
}
{
"name": "arlong_answer",
"description": "Ask a question and get a grounded AI answer...",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string", "description": "The question to answer" }
},
"required": ["query"]
}
}
{
"name": "arlong_status",
"description": "Live health snapshot of the model router...",
"inputSchema": { "type": "object", "properties": {} }
}
Quickstart
cURL
curl "https://arlong.org/api/arlong/search?q=weather+forecast&pretty=1"
Python
import requests r = requests.get( "https://arlong.org/api/arlong/search", params={"q": "python programming"}, headers={"Authorization": "Bearer al_xxxx"} ) for res in r.json()["results"][:3]: print(f"{res['title']} — {res['url']}")
JavaScript
const res = await fetch( "https://arlong.org/api/arlong/search?q=javascript+fetch" ); const { results } = await res.json(); console.log(results);
LLM function tool definition
{
"type": "function",
"function": {
"name": "web_search",
"description": "Search the web via Arlong. Add API key for higher limits.",
"parameters": {
"type": "object",
"properties": {
"q": { "type": "string", "description": "Search query" }
},
"required": ["q"]
}
}
}
Integrations & Plugins
Arlong integrates with the tools you already use.
Claude Desktop, Cursor, Windsurf, and any MCP client.
Search, answer, and status endpoints for any HTTP client.
Direct CLI access to search, answer, and status.
Coming Soon
Claude Code Plugin
Native Arlong search tool inside Claude Code for real-time web grounding during agentic coding sessions.
Claude Plugin
Arlong as a Claude.ai plugin for persistent web search and citation in conversations.
ChatGPT Plugin
Connect ChatGPT to Arlong's search index for grounded, cited answers with real-time web data.
Best Practices
- Cache results — identical queries return the same results for one hour. Cache locally to avoid hitting the rate limit.
- Respect rate limits — 2 req/hour tokenless, or 80 req/30 minutes with an API key. Back off on
429responses. - Use the MCP server — for Claude Desktop / Cursor integrations, the remote MCP endpoint is the easiest path. Zero dependencies.
- Send your key — requests count against your account allowance instead of an anonymous IP limit. Free includes 100 API/MCP calls monthly; Founder and Pro include 2,000 per billing period. An 80-request/30-minute burst limit still applies.
- Monitor status — call
/api/arlong/statusor check the MCParlong_statustool for router health before high-volume requests.