AgentBIT
← all tools

Academic Paper Search

Academic paper search built for AI agents doing real research. One paid call queries three authoritative open scholarly indexes simultaneously — OpenAlex (250M+ works with citation counts and open-access resolution), Crossref (the DOI registry) and arXiv (preprints with guaranteed PDFs) — then merges and deduplicates the results by DOI and title. Each paper returns: title, up to 12 authors, publication year, venue, DOI, citation count (richest source wins), a reconstructed abstract where available, the canonical URL, and — the part agents actually need — a direct open-access pdf_url when a legal free full text exists, so the next step (fetch and read the paper) is one HTTP GET away. Filters: limit (1-25), year_from, open_access_only. Set format to 'bibtex' to also get a ready-to-use BibTeX entry per paper. Per-source status is reported so you can see exactly which indexes answered. Data comes from public scholarly APIs; citation counts and OA links are as fresh as the sources themselves.

$0.01
USDC per call · x402
Endpoint
POST /v1/research/papers
MCP name
agentbit.paper_search
Status
active
Latency / uptime (7d)
4537 ms · 100%

Call with x402

1. Send the request. 2. Receive 402 with accepts[]. 3. Sign the payment and retry with the X-PAYMENT header.

curl -X POST https://agentbit.app/v1/research/papers \
  -H 'Content-Type: application/json' \
  -d '{"query":"attention is all you need transformer","limit":5,"format":"bibtex"}'

Input schema

{
    "type": "object",
    "properties": {
        "query": {
            "type": "string",
            "description": "Search query: topic, title fragment, or author + topic (3-300 chars)"
        },
        "limit": {
            "type": "integer",
            "description": "Max papers to return (1-25, default 10)"
        },
        "year_from": {
            "type": "integer",
            "description": "Only papers published in or after this year"
        },
        "open_access_only": {
            "type": "boolean",
            "description": "Only papers with a direct open-access PDF link"
        },
        "format": {
            "type": "string",
            "enum": [
                "json",
                "bibtex"
            ],
            "description": "'bibtex' adds a ready-to-cite BibTeX entry per paper"
        }
    },
    "required": [
        "query"
    ]
}

Output schema

{
    "type": "object",
    "properties": {
        "query": {
            "type": "string"
        },
        "result_count": {
            "type": "integer"
        },
        "papers": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string"
                    },
                    "authors": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "year": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "venue": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "doi": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "citations": {
                        "type": "integer"
                    },
                    "pdf_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Direct open-access PDF link when a legal free full text exists"
                    },
                    "abstract": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sources": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "bibtex": {
                        "type": "string",
                        "description": "Present when format=bibtex"
                    }
                }
            }
        },
        "sources": {
            "type": "object",
            "description": "Per-source status: {openalex|crossref|arxiv: {ok, results, error?}}"
        },
        "note": {
            "type": "string"
        }
    }
}

Code examples

// JavaScript (x402-fetch)
import { wrapFetchWithPayment } from "x402-fetch";
const fetchWithPay = wrapFetchWithPayment(fetch, wallet);
const r = await fetchWithPay("https://agentbit.app/v1/research/papers", {
  method: "POST",
  headers: {"Content-Type": "application/json"},
  body: JSON.stringify({"query":"attention is all you need transformer","limit":5,"format":"bibtex"})
});
console.log(await r.json());
# Python (x402 client)
from x402.clients.requests import x402_requests
s = x402_requests(account)
r = s.post("https://agentbit.app/v1/research/papers",
  json={"query":"attention is all you need transformer","limit":5,"format":"bibtex"})
print(r.json())
// PHP
$r = Http::withHeaders(['X-PAYMENT' => $signedPayment])
  ->post('https://agentbit.app/v1/research/papers',
    array (
  'query' => 'attention is all you need transformer',
  'limit' => 5,
  'format' => 'bibtex',
));
$data = $r->json();