WritersLogic Verifiable AI Agent Hub Audit Public Record API
The Audit Public Record API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for audit public record.
The Audit Public Record API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for audit public record.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/writerslogic-com:writerslogic-com-audit-public-record-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WritersLogic Verifiable AI Agent Hub Audit Public Record API
version: 2.0.0
description: Pay-per-call agents settled in USDC on Base via x402. Every response carries a signed provenance envelope.
contact:
name: WritersLogic
url: https://writerslogic.com/agents
email: agents@writerslogic.com
servers:
- url: https://agents.writerslogic.com
tags:
- name: Audit Public Record
paths:
/api/v1/audit-public-record:
post:
operationId: audit_public_record
summary: OnRecord statutory clock & redaction auditor
description: 'Audits an agency''s public-records response and leads with a decision (late, redaction problems, incomplete, pending or no violation found). Computes the statutory response deadline and days late (California CPRA, with the court-day calendar and § 7922.535 extension rules), flags redactions without an exemption citation, passages redacted in one document but readable in another, referenced attachments that were not supplied, and gaps in the document timeline, and drafts a follow-up letter with the controlling Gov. Code sections linked and [BRACKETED] placeholders to fill. Every finding carries UTF-8 byte offsets and SHA-256 hashes of the exact span and the whole document; the narrative may cite only those ids. Other jurisdictions get the document checks but no clock. Not legal advice.
Price: 1.50 USDC on Base (x402).'
x-x402-price-usdc: '1.50'
x-x402-amount: '1500000'
x-payment-info:
protocols:
- x402
price:
mode: fixed
currency: USD
amount: '1.50'
x-audience: business
x-sample-url: https://agents.writerslogic.com/api/v1/samples/audit-public-record
security:
- x402: []
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- jurisdiction
- requestDate
- documents
properties:
jurisdiction:
type: string
minLength: 2
maxLength: 40
description: OnRecord jurisdiction code. Only "CA_CPRA" (alias "US-CA") has a statute table; any other value returns clock "unknown_jurisdiction" while document checks still run.
requestDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}(?:[T ].*)?$
maxLength: 40
description: Date the agency received the request (YYYY-MM-DD or RFC 3339; read in the offset written).
responseDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}(?:[T ].*)?$
maxLength: 40
description: Date of the agency's determination/response. Omit if none yet.
asOfDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}(?:[T ].*)?$
maxLength: 40
description: Observation date when responseDate is omitted; defaults to today (UTC).
extensionNotices:
type: array
maxItems: 5
items:
type: object
additionalProperties: false
required:
- noticeDate
- expectedDate
- reason
- noticeSource
properties:
noticeDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}(?:[T ].*)?$
maxLength: 40
expectedDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}(?:[T ].*)?$
maxLength: 40
description: Date the agency says its determination will be dispatched.
reason:
type: string
maxLength: 80
description: One of SEPARATE_FIELD_FACILITIES, VOLUMINOUS_RECORDS, INTERAGENCY_CONSULTATION, DATA_COMPILATION, CYBERATTACK_SYSTEMS_UNAVAILABLE, DECLARED_EMERGENCY_OPERATIONAL_IMPACT.
noticeSource:
type: string
maxLength: 500
description: Identifier of the written notice (letter, portal message). Empty makes the extension defective.
documents:
type: array
minItems: 1
maxItems: 40
items:
type: object
additionalProperties: false
required:
- name
- text
properties:
name:
type: string
minLength: 1
maxLength: 200
text:
type: string
maxLength: 1500000
agencyName:
type: string
maxLength: 200
description: Agency that received the request; fills the follow-up letter.
requesterName:
type: string
maxLength: 200
description: Your name, for the follow-up letter signature.
requestReference:
type: string
maxLength: 100
description: The agency's request or tracking number, for the follow-up letter.
gapThresholdDays:
type: integer
minimum: 1
maximum: 3650
description: Report gaps between dated events longer than this (default 30).
example:
jurisdiction: CA_CPRA
requestDate: '2026-03-02'
responseDate: '2026-03-20'
agencyName: City of Example Public Works Department
requestReference: PRA-2026-0142
extensionNotices:
- noticeDate: '2026-03-10'
expectedDate: '2026-03-24'
reason: VOLUMINOUS_RECORDS
noticeSource: Portal message of 2026-03-10
documents:
- name: response-letter.txt
text: 'Dated March 20, 2026. Records are released in part. Portions marked [REDACTED] are withheld. See attached Exhibit B for the log.
Personnel email on 2025-11-03 follows.'
- name: release-2.txt
text: Email dated 2026-01-15. The manager wrote that Maria Alvarez approved the overtime budget request on Friday afternoon.
- name: release-1.txt
text: Email dated 2026-01-15. The manager wrote that [REDACTED] approved the overtime budget request on Friday afternoon. Withheld per Gov. Code 7922.000.
responses:
'200':
description: Paid result with provenance
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
headline:
type: object
description: 'Decision first: the verdict, the dollars at stake, confidence and the exact next step.'
properties:
decision:
type: string
enum:
- AGENCY_LATE
- REDACTION_PROBLEMS
- INCOMPLETE_RESPONSE
- RESPONSE_PENDING
- NO_VIOLATION_FOUND
summary:
type: string
amountAtStakeUsd:
anyOf:
- type: number
- type: 'null'
description: Dollars saved or recoverable if the recommended action succeeds; null when it cannot be computed from the input.
amountBasis:
type: string
confidence:
type: string
enum:
- high
- medium
- low
nextStep:
type: string
followUpLetter:
anyOf:
- type: 'null'
- type: object
description: Plain-text letter built in code from the clock and findings. Fill every [BRACKETED] placeholder before sending.
properties:
subject:
type: string
body:
type: string
placeholders:
type: array
items:
type: string
controllingStatutes:
type: array
items:
type: object
properties:
citation:
type: string
url:
type: string
role:
type: string
disclaimer:
type: string
jurisdiction:
type: object
properties:
input:
type: string
code:
type: string
name:
type: string
clock:
description: An object with citation, initialDeadline, effectiveDeadline, daysLate and extension statuses, or the string "unknown_jurisdiction" / "calendar_not_modeled".
anyOf:
- type: string
enum:
- unknown_jurisdiction
- calendar_not_modeled
- type: object
deterministic:
type: object
properties:
findings:
type: array
items:
type: object
properties:
id:
type: string
kind:
type: string
enum:
- redaction_without_exemption
- exemption_code_not_in_table
- foia_stamp_in_state_record
- inconsistent_redaction
- missing_attachment
- timeline_gap
severity:
type: string
enum:
- high
- medium
- low
summary:
type: string
evidenceIds:
type: array
items:
type: string
details:
type: object
countsByKind:
type: object
truncatedKinds:
type: array
items:
type: string
documents:
type: array
items:
type: object
properties:
name:
type: string
bytes:
type: integer
sha256:
type: string
evidence:
type: array
items:
type: object
properties:
id:
type: string
documentName:
type: string
byteStart:
type: integer
byteEnd:
type: integer
spanSha256:
type: string
description: SHA-256 of the exact UTF-8 bytes [byteStart, byteEnd).
documentSha256:
type: string
quote:
type: string
llm:
type: string
enum:
- ok
- unavailable
- skipped
narrative:
type: object
description: summary and appealPoints, each citing finding/evidence ids; dropped lists statements removed for unknown ids or unsupported numbers. Absent unless llm is ok.
notes:
type: array
items:
type: string
_provenance:
type: object
description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
required:
- data
- _provenance
'400':
description: Invalid request (no payment consumed)
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
'401':
description: Invalid X-API-KEY
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
'402':
description: Payment required or invalid
content:
application/json:
schema:
type: object
description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
properties:
x402Version:
type: integer
error:
type: string
code:
type: string
resource:
type: object
accepts:
type: array
items:
type: object
extensions:
type: object
'502':
description: Upstream failure; the payment is released or not settled
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
tags:
- Audit Public Record
components:
securitySchemes:
x402:
type: apiKey
in: header
name: PAYMENT-SIGNATURE
description: x402 v2 payment payload (base64) sent after a 402 challenge
apiKey:
type: apiKey
in: header
name: X-API-KEY