DEV Publication Evidence — Missing/Null/False Safe avatar

DEV Publication Evidence — Missing/Null/False Safe

Pricing

Pay per usage

Go to Apify Store
DEV Publication Evidence — Missing/Null/False Safe

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

Bryan

Maintained by Community

Actor 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: true or null when the public state is genuinely unknown.
  • Hosted published_state: PUBLISHED or UNKNOWN; the local owner verifier can also return DRAFT with published: false.
  • publisher_field_state: MISSING, PRESENT_NULL, PRESENT_TRUE, PRESENT_FALSE, or PRESENT_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: