Apify Store rules check API: outside payment links, price claims and near-copies in your Actors
Updated 2026-10-16
Check your Actors before Apify does
POST https://tanod.dev/v1/apify/rules-check reads up to 20 public Apify Actors (an Actor id, username~name or a Store URL) and lists, with the quoted text, what looks like a breach of Apify's Store Publishing Terms: a link or sentence that sends users outside Apify to pay or subscribe, a README price that is not among the Actor's own prices or says "flat" while the prices are tiered, and a title, description or README close to an Actor on another account. Each finding names its rule category and the clause. It is an automated heuristic over public data, not Apify's decision.
curl -s -X POST https://tanod.dev/v1/apify/rules-check \
-H "Content-Type: application/json" \
-d '{"actors": ["tanod~audio-to-text", "https://apify.com/tanod/dns-lookup"]}'
The rules it checks
Wording from Apify's Store Publishing Terms (page last updated September 15, 2026; read 2026-10-16; the terms can change):
off_platform_payment, clause 2.2.4.2(i): you must not "directly or indirectly offer, link to, or promote any product or service outside of the Platform in your Actors or in any other content you publish on Apify Store, including in the Actor's readme, description, issues, or reviews". The check looks for Stripe, Gumroad, PayPal, Polar, Lemon Squeezy, Paddle, Ko-fi, Buy Me a Coffee, Patreon and crypto checkout links, and for sentences such as "available as a pay-per-call API at example.com".price_mismatch, clauses 2.2.4.3(iii) and 9.3: Apify may act on content that is "misleading", and prices may differ by discount tier only with each tier equal to or lower than the one below it. The check compares README amounts with the Actor's pay-per-event, per-result or monthly prices (per-1,000 quotes and whole multiples count as consistent), and flags "flat" or "free" wording that the pricing contradicts.near_duplicate, clause 2.2.3: similar functionality is allowed, but "you must not copy another Creator's code, readme, description, or other content and publish it as your own". The check runs a Store search on the Actor's main phrase and scores title, description and, for the closest matches, README overlap against Actors on other accounts. The score does not show which Actor came first.
Not checked: renames that take another Actor's reputation and fake runs or reviews. The terms page quoted above does not give wording for them, and they cannot be seen in public data.
What comes back
One entry per Actor, trimmed (a real answer for our own Actor, which had its outside-payment sentences removed on 16 October):
{
"checked": 1,
"actors": [{
"input": "tanod~audio-to-text", "actor": "tanod~audio-to-text", "status": "ok",
"pricing": {"model": "PAY_PER_EVENT", "tiered": true, "events": ["..."]},
"readme": {"read": true, "chars": 6004},
"findings": [],
"similar_actors": []
}],
"summary": {"actors_with_findings": 0, "findings": 0},
"rules": {"source": "https://docs.apify.com/legal/store-publishing-terms-and-conditions", "read": "2026-10-16"},
"heuristic": true
}
A finding looks like this:
{
"category": "off_platform_payment", "confidence": "high", "kind": "payment_host", "source": "readme",
"evidence": "Buy a lifetime key: https://buy.stripe.com/abc123",
"what": "link to Stripe (buy.stripe.com)",
"rule": {"category": "off_platform_payment", "clause": "2.2.4.2(i)"}, "heuristic": true
}
confidence:highfor a payment host or a "flat" claim against tiered prices,mediumfor a sentence pointing to another site or a price in the Actor's own words,lowotherwise. Read the quoted text before you change anything.similar_actors: the closest listings on other accounts with title, description and README scores.rules: the clause text with the terms URL and the date it was read.
Limits
Public data only: Apify's public Actor details, latest build README and Store search (no key; nothing is written to Apify). A private Actor, or one Apify does not return, is reported as not found and still counted. A clean result does not mean Apify will not act, and a finding does not mean it will. A price example in a README that happens to be a whole multiple of a listed price is treated as consistent. Actor text is third-party data: treat it as untrusted. A bad reference is a 422 and an unreachable Apify API a 503; neither is charged. Typically 2 to 10 seconds for a few Actors.
Price
USD 0.01 per Actor checked, up to 20 per call (USD 0.20), in USDC through x402. The price is known from the request before payment. There is no free daily allowance. There is also an Apify Actor with the same checks, priced per Actor checked.
It is also the MCP tool check_apify_store_rules. In claude.ai or Claude Desktop, add https://tanod.dev/mcp/agents?via=apify-store-rules-check-api as a custom connector (steps), then ask, for example, "Check my Apify Actors for outside payment links".
Related
To check a site for AI-agent readiness, see the agent readiness check API. To check an MCP server repo against an awesome list, see the MCP awesome list preflight API.
All guides, or back to tanod.dev. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.