Link and Citation Checker for AI Answers
Pricing
from $2.00 / 1,000 links
Link and Citation Checker for AI Answers
Check every link in an AI answer, report or list: does it resolve, HTTP status, redirects, page title, soft 404s, and whether the quoted text really appears on the page (HTML and PDF), with the matching passage. Catches made-up links and misquotes.
Pricing
from $2.00 / 1,000 links
Rating
0.0
(0)
Developer
LandlordTools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
AI answers and reports cite links that don't exist, and quote pages that say something else. This Actor checks every link: does it resolve, where does it end up, what is the page called, and is the quoted text really on it? When a quote is wrong, you get the passage the page actually contains.
What it checks
- Status and redirects:
- Each URL is fetched with GET and redirects are followed one by one, so you see the whole chain (relative
Locationheaders are resolved as RFC 9110 says 1). - Up to 10 redirects are followed.
- Each URL is fetched with GET and redirects are followed one by one, so you see the whole chain (relative
- Verdicts:
ok;broken: 404 or 410 1, a domain that doesn't exist, a page that says it wasn't found while returning 200 (a "soft 404" 4), or a deep link redirected to the home page;blocked: 401, 403, 429 2, 451 3 or a bot challenge. The site refused an automated check, which doesn't mean the link is wrong;error: timeouts, 5xx and connection problems, which may be temporary;invalid.
- Quotes (HTML, PDF and plain text). Both sides are normalised first: Unicode NFKC 5, curly quotes and dashes, soft hyphens, spacing and case.
exact, orwords(same words in the same order, punctuation aside), means the quote is there.with-omissions: the quote uses...or…and every part is on the page, in order.closeandpartialmean a similar passage exists but the words differ. The verdict isquote-differs, with asimilarityscore and the realpassage. This is how changed numbers and dates show up.nonemeans nothing like it is on the page (quote-not-found).
- PDFs are read with Mozilla's PDF.js 6, including the document title.
- Text input: paste an AI answer or Markdown. Links in Markdown, HTML and bare URLs are found, and trailing punctuation is trimmed.
Checking:
- Unit tests replay real GOV.UK responses recorded on 3 October 2026, plus generated PDFs and edge cases.
tests/check_live.pychecks live URLs against independent tools: curl for status and final URL, and Python's HTML parser or poppler'spdftotextfor quotes. All 8 agreed on 3 October 2026.
Input
{"links": [{"url": "https://www.gov.uk/vat-rates","quote": "The reduced rate of VAT is 8%, for example on children's car seats and home energy.","label": "VAT rates"},{"url": "https://gov.uk/vat-rates","quote": "The standard rate of VAT increased to 20% on 4 January 2011 (from 17.5%).","label": "VAT rates"},{"url": "https://www.gov.uk/guidance/rates-of-vat-on-different-goods-and-services-2031","label": "Rates of VAT on different goods and services"}],"timeoutSecs": 20}
Example output
One dataset row per link. Here the quoted 8% rate is wrong, and the passage shows the page says 5%:
{"url": "https://www.gov.uk/vat-rates","label": "VAT rates","verdict": "quote-differs","status": 200,"finalUrl": "https://www.gov.uk/vat-rates","redirects": 0,"redirectChain": [],"title": "VAT rates - GOV.UK","contentType": "text/html","quote": "The reduced rate of VAT is 8%, for example on children's car seats and home energy.","quoteFound": false,"quoteMatch": "partial","similarity": 0.59,"passage": "…of VAT What the rate applies to Standard rate 20% Most goods and services Reduced rate 5% Some goods and services, for example, children’s car seats and home energy Zero rate 0% Zero-rated goods and services,…","note": null,"error": null}
The OUTPUT record adds a count per verdict, and what each verdict means.
Integrations
Ready-made files in integrations/README.md: a Microsoft Power Platform custom connector, OpenAPI 3 (AI agents, n8n, Postman), an Excel / Power BI Power Query script, a Google Sheets function, and curl, Python and JavaScript examples.
Pricing
Pay per event: $2 per 1,000 results ($0.002 each), plus Apify's minimal start fee. A result is one row in the dataset: one link checked. The run stops at your spending limit.
Sources
- RFC 9110 HTTP Semantics: 15.4 Redirection 3xx, 10.2.2 Location (may be relative), 15.5.5 404 Not Found, 15.5.11 410 Gone. Accessed 3 October 2026.
- RFC 6585: 4. 429 Too Many Requests. Accessed 3 October 2026.
- RFC 7725: 3. 451 Unavailable For Legal Reasons. Accessed 3 October 2026.
- Google Search Central: HTTP status codes, and soft 404 errors (an error message served with 200). Accessed 3 October 2026.
- Unicode Standard Annex #15: Normalization Forms (NFKC, used before comparing quotes). Accessed 3 October 2026.
- pdfjs-dist (Mozilla PDF.js, Apache-2.0): text from PDFs. Accessed 3 October 2026.