DEV Publication Evidence — Missing/Null/False Safe
Pricing
Pay per usage
DEV Publication Evidence — Missing/Null/False Safe
Resolve public DEV article state without accepting credentials. Preserve raw field state, observed endpoint keys, source hash, derivation, and a sealed receipt.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Bryan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
DEV's public article endpoint can return a valid published article while omitting the published field that appears in authenticated article representations. A deserializer that treats a missing key like false can silently classify a live article as a draft.
This Actor is a compatibility and evidence API. Give it a DEV article URL or ID. It returns an explicit published value, the evidence-backed published_state, the raw publisher field state, a stable endpoint-shape fingerprint, the observed key set, the official response hash, and a sealed receipt.
Public use
{"articleUrl": "https://dev.to/civicdataforge/what-broke-when-we-turned-government-open-data-into-agent-callable-evidence-1m81"}
Public articles need no DEV API key. DEV documents the public article endpoints as returning published articles, and its own request specs return 404 for unpublished articles. Therefore a public-endpoint HTTP 200 is recorded as published: true even when the raw response omits the field.
Owner-only draft resolution without giving us a key
When a public request returns 404, that result alone cannot distinguish a draft, deletion, changed URL, or unknown article. CivicDataForge's hosted Worker and Apify Actor deliberately never accept DEV API keys.
Owners can instead download the dependency-free local verifier. It prompts for the key without terminal echo and sends it directly from the owner's machine to the exact HTTPS host dev.to. CivicDataForge and Apify never receive the key or the private result.
node .\local\civicdataforge-devto-owner-verify.mjs --url "https://dev.to/yourname/your-draft-slug"
The hosted services reject credential fields, authorization headers, credential-like query parameters, and unknown JSON properties. See ./SECURITY.md for the exact boundary.
Output semantics
- Hosted
published:trueornullwhen the public state is genuinely unknown. - Hosted
published_state:PUBLISHEDorUNKNOWN; the local owner verifier can also returnDRAFTwithpublished: false. publisher_field_state:MISSING,PRESENT_NULL,PRESENT_TRUE,PRESENT_FALSE, orPRESENT_VALUE.publisher_payload_shape: observed keys, missing expected keys, explicit null keys, explicit false keys, shape fingerprint, response hash, and receipt hash.integrity_state: makes representation drift visible even when the HTTP request succeeds.
This Actor does not accept credentials, modify DEV, bypass authentication, expose drafts, or claim DEV supplied a field that it omitted.
Direct CivicDataForge API
The same contract is available without an Apify account:
GET https://civicdataforge-devto-evidence.neoaethel.workers.dev/v1/devto/publication-evidence?url=<encoded-dev-url>
Use POST /v1/devto/publication-evidence with keyless JSON containing an article URL or ID. The direct API and Actor import the same normalization and receipt implementation, so their public publication semantics cannot drift independently. Private owner checks are intentionally local-only.
Agent access
- Actor:
civicdataforge/devto-publication-evidence - MCP:
https://mcp.apify.com/?tools=civicdataforge/devto-publication-evidence - Support:
civicdataforgehq@gmail.com
Official contract references: