Sign in

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

PathWhat you get
GET/api/v1/providersAgencies 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/toolsThe 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=0The 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

  1. Fetch the record's proof, for example /s/{engagement}/{month}.json or /m/{id}.json.
  2. Compute SHA-256 of its payload string. It must equal mark_hash.
  3. Verify signature (Ed25519, base64url) over signed_message, which is mark_hash|prev_hash|time with the log time in milliseconds since 1970, using the public key at /key.
  4. Optionally, walk the log: each entry's prev_hash is 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