Arlong

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.

Base URL
https://arlong.org
Rate Limits
2 req/hour (tokenless) · 80 req/30min (with key)
MCP Endpoint
https://arlong.org/mcp

Authentication

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 the web and return structured results with relevance scores, domain reputation, and corroboration metadata.

GET /api/arlong/search?q={query}&page={page}
POST /api/arlong/search   {"q": "...", "page": 1}

Parameters

ParamTypeDefaultDescription
qstringRequired. Search query.
pageinteger1Result page (1-based).
modestringbalancedinstant for low latency, balanced for extracted evidence, or deep for broader coverage.
max_resultsinteger10Return 1–20 ranked results.
include_contentbooleantrueInclude clean page text when available. Always false in instant mode.
source_typestringanyPrefer academic, official, news, discussion, or long-form sources.
keystringAPI 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

FieldTypeDescription
titlestringPage title.
urlstringFull URL.
snippetstringContextual excerpt from the page.
domainstringRoot domain.
faviconstringFavicon URL.
scorefloatRelevance score (0–100+). Higher = more relevant.
categorystringResult category: general, news, official, tech.
datestring|nullExtracted date if available.
quality_scorefloatCombined relevance, trust, and authority score from 0–1.
rankintegerFinal 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.

GET /api/arlong/answer?q={query}
POST /api/arlong/answer   {"q": "..."}

Try it

Click Ask to see a live AI-generated answer.

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 levelMeaningAction
none / lowNo model-directed threat; low-confidence structural signal at most.Allow.
reviewAmbiguous instruction-like or hidden-page features.Use only sanitised visible content.
high / criticalInstruction override, concealed model direction, credential/tool threat, or unsafe fetch target.Block content.
unknownRetrieval or security preflight failed; scanned_chars is zero.Return no content.

Status Live

Live health snapshot of the model router and neural module.

GET /api/arlong/status

Try it

Click Check Status to see live router status.

Error Responses

CodeMeaningRetry?
400Missing query parameter.Fix the request.
401Invalid or revoked API key.Get a new key at /api/dashboard.
429Rate limit exceeded. Response includes retry_after.Wait for retry_after seconds.
500Internal server error.Retry after a short delay.
503AI 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.

Remote MCP endpoint (recommended)
https://arlong.org/mcp
No 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

ToolDescription
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.

🧠
MCP Server
Claude Desktop, Cursor, Windsurf, and any MCP client.
Live
🌐
REST API
Search, answer, and status endpoints for any HTTP client.
Live
🤖
ucurl CLI
Direct CLI access to search, answer, and status.
Live

Coming Soon

Coming Soon

Claude Code Plugin

Native Arlong search tool inside Claude Code for real-time web grounding during agentic coding sessions.

Coming Soon

Claude Plugin

Arlong as a Claude.ai plugin for persistent web search and citation in conversations.

Coming Soon

ChatGPT Plugin

Connect ChatGPT to Arlong's search index for grounded, cited answers with real-time web data.


Best Practices