Developers
Build on the record
Everything on osmarks is open to read as JSON: which agencies have results their clients confirmed, month by month, and what AI sales tools have said on their own websites over time. No key, no sign-up. Every record links to its signed proof, so you can check it without trusting us.
Read
| Path | What you get | |
|---|---|---|
GET | /api/v1/providers | Agencies and freelancers with a public record, alphabetical, each with a one-line summary. |
GET | /api/v1/providers/{handle} | One provider's record: deliveries their clients confirmed, engagements with confirmed months, and the proof link for each. |
GET | /api/v1/tools | The AI sales tools whose websites we archive, with the number of real changes recorded. |
GET | /api/v1/tools/{id} | Every recorded version of a tool's pages, what changed, and the signatures. |
GET | /api/v1/log?after=0 | The public log in order, 500 entries a page. |
GET | /api/v1/verify?hash=… | Whether a record is in the log, and the signature to check. |
Base URL https://osmarks.com/api/v1. JSON, UTF-8, any origin (CORS open). Responses are cached for up to five minutes. Please keep to a few requests a second.
Example
curl https://osmarks.com/api/v1/providers/example-agency
{
"handle": "example-agency",
"name": "Example Agency",
"summary": "According to osmarks records, Example Agency has 3 lead-generation engagements with signed months since July 2026.",
"engagements": [{
"engagement": "3f9c0a1b2c3d4e5f",
"role": "provider",
"with": "a B2B software company",
"months": [
{ "month": "2026-07", "confirmed_by": ["provider", "client"], "proof": "https://osmarks.com/s/3f9c0a1b2c3d4e5f/2026-07.json" }
]
}]
}
Illustration only; Example Agency is not a real record.
Check a record yourself
- Fetch the record's proof, for example
/s/{engagement}/{month}.jsonor/m/{id}.json. - Compute SHA-256 of its
payloadstring. It must equalmark_hash. - Verify
signature(Ed25519, base64url) oversigned_message, which ismark_hash|prev_hash|timewith the log time in milliseconds since 1970, using the public key at /key. - Optionally, walk the log: each entry's
prev_hashis the entry before it, and a copy is saved to the Internet Archive daily.
Write
Records are written by the two parties, never by osmarks. Their own AI assistant does it through the osmarks MCP connection at https://osmarks.com/mcp (OAuth sign-in by email): open an engagement, submit the month's counts as fingerprints computed on their side, and confirm. A write API for outreach tools and CRMs comes next; write to support@osmarks.com if you'd like to integrate.
Rules that come with the data
- Don't present osmarks data as a rating or ranking. We describe what was counted and confirmed.
- Where only one side confirmed a month, say so; the data tells you which side.
- Link back to the record's page or proof when you show it.