Placeholder values hiding as data: caller-declared sentinels and likely candidates
Scans columns of values for sentinels. Values you declare in a dictionary (for example -1 means unknown in column age) are reported as asserted hits with their row paths. Other values that look like missing-data markers are reported separately as candidates, never asserted: the pandas default NA strings, spreadsheet error values, whitespace-only text, placeholder words, zero and epoch dates, fixed-width integer limits, -1 in an otherwise non-negative column, runs of 9s above or below every other value, and a numeric value repeated at least 3 times that lies beyond 3 interquartile ranges of the rest. For agents about to average, sum, join or load a column. It cannot know what a value means: a candidate may be real data, and 0 is never flagged.
What you get
Sentinels silently distort means, joins and date ranges. 20,000 values per $0.005 call.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/sentinel-values. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/sentinel-values \
-H 'content-type: application/json' \
-d '{"columns":[{"name":"age","values":[34,29,-1,41,-1,52,38,27,45,33,30,36]},{"name":"joined","values":["2021-03-04","1970-01-01","2022-07-19","N/A"]}],"dictionary":[{"column":"age","value":-1,"meaning":"unknown"}]}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
columns | array<object>; max 50 items | yes | |
dictionary | array<object>; max 100 items | no | Values you know are sentinels. |
Example request body
{
"columns": [
{
"name": "age",
"values": [
34,
29,
-1,
41,
-1,
52,
38,
27,
45,
33,
30,
36
]
},
{
"name": "joined",
"values": [
"2021-03-04",
"1970-01-01",
"2022-07-19",
"N/A"
]
}
],
"dictionary": [
{
"column": "age",
"value": -1,
"meaning": "unknown"
}
]
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
status | string; one of "pass", "fail", "unknown", "unsupported" | no | pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass. |
columns | array<object> | no | |
assertedHitCount | integer | no | |
candidateCount | integer | no | |
witnesses | array<object> | no | |
versions | object | no | Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile). |
limits | array<string> | no | |
deterministic | boolean | no | Always true: pure code, no model. |
Pay and connect
Available through: x402 (USDC on Base), MCP. MCP clients reach it through the data-contract-kit package.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent