/developers
Build with FeedShield
Use the public API, connect agent tools, or inspect how the scan engine and accuracy gates work.
Quick start
Send a store URL to the public scan endpoint. It runs the free scan and returns the result as JSON.
Request
curl -X POST https://feedshield.ai/api/analyze/public \
-H "Content-Type: application/json" \
-d '{"url":"https://example-store.com"}'Example response, truncated. It follows the shape of a real scan, with the store address replaced.
{
"success": true,
"data": {
"url": "https://example-store.com/",
"complianceScore": 76,
"totalChecks": 105,
"passed": 55,
"warnings": 50,
"failed": 0,
"summary": [
{ "category": "policy_pages", "total": 5, "passed": 4, "warnings": 1, "failed": 0, "score": 90 }
],
"topIssues": [
{
"name": "Shipping Policy accessible",
"category": "policy_pages",
"status": "warning",
"severity": "warning",
"message": "Shipping Policy exists at https://example-store.com/policies/shipping-policy, but the page we scanned does not link to it.",
"howToFix": "Link your shipping policy from the footer of every page, so shoppers and Google's reviewers can reach it in one click.",
"evidence": [
{
"found": "https://example-store.com/policies/shipping-policy",
"location": "standard policy URL, not linked from the scanned page",
"expected": "a footer link on every page"
}
]
}
],
"audit_id": "…",
"share_url": "https://feedshield.ai/audit/…"
}
}Endpoints
The OpenAPI document at /api/openapi is titled "FeedShield Public API".
| Kind | Path | Returns |
|---|---|---|
| OpenAPI | /api/openapi | The public API document. |
| GET | /api/agent | Every machine-readable endpoint. |
| GET | /api/agent/blog | Blog content. |
| GET | /api/agent/glossary | Glossary content. |
| GET | /api/agent/compare | Comparisons content. |
| GET | /api/agent/use-cases | Use cases content. |
| GET | /api/agent/authors | Authors content. |
| GET | /api/agent/case-studies | Case studies content. |
| GET | /api/agent/knowledge-hub | Knowledge hub content. |
| GET | /api/agent/services | Plans and agency tiers generated from the same pricing source as the pricing page. |
| POST | /api/analyze/public | The free scan result shown in the quick start example. |
Agents
MCP
/.well-known/mcp-server.json describes the run-free-audit tool with input storeUrl.
WebMCP
The manifest is at /webmcp.json. Its imperative tools are:
- feedshield.runFreeAudit
- feedshield.searchKnowledge
- feedshield.getPricing
- feedshield.listPolicyUpdates
- feedshield.listGlossaryTerms
- feedshield.listBlogArticles
- feedshield.compareToCompetitor
The declarative tool is feedshield.openFreeAuditForm. The scan forms on the homepage and /free-audit carry data-webmcp-tool.
Discovery files
- /agent.json
- /.well-known/ai-plugin.json
- /llms.txt
- /llms-full.txt
Key pages also return Markdown when requested with Accept: text/markdown.
curl -H "Accept: text/markdown" https://feedshield.ai/features
How the scan works
The engine reads a store's public pages the way a shopper's browser does: the homepage, policy pages, a product page, pricing and checkout signals. Checks are grouped in 27 categories, and each scan reports the categories that apply to that store. Findings are pass, warning or fail. Every finding includes evidence describing what was seen and where.
Example category ids from a real response
policy_pages business_identity checkout_payment schema_structured_data gmc_policy product_title_quality availability_display variant_handling feed_related
AI output
Fix explanations are written by Claude models through one AI gateway. Paste-ready code snippets are sanitised: no scripts, no Liquid template code and same-site links only.
Policy Watch
A daily job at 09:00 UTC fetches 18 official Google, Shopify and Meta policy pages. It strips Google Help Center page chrome, common cookie-banner text and full dates, then compares the remaining text word by word. Any changed word creates a change record. Paid plans receive an in-app alert quoting the change.
Real example: on 26 Sep 2026, Google changed "Shopping ads" to "Shopping ads and listings" on three Merchant Center policy pages.
How we measure accuracy
An offline accuracy gate replays recorded snapshots of 8 real stores on every pull request in CI. Every finding is hand-labelled as a true risk, false alarm or noise. Each store has a ceiling for false alarms and noise, and that ceiling can only go down.
A separate held-out set of 19 stores is scored against ground truth that was written from an independent crawl and sealed with a SHA-256 hash before any engine output was read.
Contact: hello@feedshield.ai