Citation Verify API
Verify academic citations against Google Scholar via ScrapingDog. Accepts citation strings and returns per-citation verification results with matched paper metadata and similarity scores.
POST
/v1/citation-verify/verifyVerify Citations
POST
/v1/citation-verify/verifyAccepts a list of citation strings (1-5) and verifies each by searching Google Scholar. Returns per-citation result: 'verified' (exact match), 'mismatch' (found but details differ), or 'not_found' (no match).
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
citations | string[] | Required | Array of citation strings to verify (1-5 items) |
Result Types
verified — Citation matches a Google Scholar record — title, authors, and year match
mismatch — Found on Google Scholar but some details differ
not_found — No matching publication found on Google Scholar
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
citations | string[] | Required | Array of citation strings to verify (1-5 items) |
Response
Response
{
"success": true,
"message": "Verified 2 citations: 2 verified, 0 mismatch, 0 not found",
"total": 2,
"verified_count": 2,
"mismatch_count": 0,
"not_found_count": 0,
"results": [
{
"index": 1,
"input_citation": "LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.",
"result": "verified",
"title_similarity": 1,
"matched_paper": {
"title": "Deep learning",
"authors": [
"Y LeCun",
"Y Bengio",
"G Hinton"
],
"year": "2015",
"journal": "nature",
"cited_by": 109429
},
"mismatch_fields": null,
"message": "Citation verified — title, authors, and year match Google Scholar record"
}
]
}Examples
import requests
API_KEY = "your_api_key_here"
BASE_URL = "https://api.qinyanai.com"
response = requests.post(
f"{BASE_URL}/v1/citation-verify/verify",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"citations": [
"LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.",
"Vaswani, A., et al. (2017). Attention Is All You Need. NeurIPS, 30."
]
}
)
data = response.json()
print(f"Verified: {data['verified_count']}, Mismatch: {data['mismatch_count']}, Not found: {data['not_found_count']}")
for r in data["results"]:
print(f" [{r['result']}] {r['input_citation'][:60]}...")