API v1 · Developer Preview

A small API with a serious privacy boundary.

Build trusted command-line and server-side tools around people, sources, cases, deterministic quality checks, and portable GEDCOM export—without opening the browser application’s internal API.

The contract is implemented in source. Hosted access stays disabled until the SHA-bound staging, edge-rate-limit, production, and revocation gates pass, then activates archive by archive for invited participants. Browser CORS is intentionally disabled.
01

One token, one archive

Tokens are owner-created, expire, revoke immediately, and never choose an archive from caller input.

02

Least privilege by default

People, sources, cases, reports, and full export have explicit scopes. No v1 operation writes archive state.

03

A contract you can test

The OpenAPI 3.1 document is checked against the runtime route registry in CI and published from the same source.

Quickstart

From token to first response in one request.

After hosted API activation, an archive owner creates a short-lived token in Settings and selects only the scopes an integration needs. The complete secret is displayed once.

Base URL app.kinresolve.com/api/v1Page size 25 default · 100 maximumErrors code · message · requestId
Terminal · trusted environment
$ curl --fail-with-body \
  -H "Authorization: Bearer $KINRESOLVE_TOKEN" \
  https://app.kinresolve.com/api/v1/meta
Illustrative 200 response after activation · excerpt
{
  "data": {
    "apiVersion": "v1",
    "archive": {
      "name": "Hartwell–Mercer Family Archive"
    }
  }
}
The launch contract

Seven reads. No surprise authority.

Every endpoint is registered explicitly. Unknown routes and methods fail closed; import, apply, rollback, publishing, DNA, AI, members, settings, and token management stay outside the external contract.

ScopeOperationProjection
archive:readGET /meta

Version, archive display metadata, and capabilities

archive:readGET /people

Bounded cursor pages of conservative person summaries

archive:readGET /people/{id}

One person with at most 100 structured facts

sources:readGET /sources

Source summaries without files, transcripts, or storage keys

cases:readGET /cases

Case summaries without nested evidence graphs

reports:readGET /reports/quality

Deterministic aggregate quality checks

archive:exportGET /exports/gedcom

Audited full GEDCOM 5.5.1 export

Bounded by design

Opaque cursors, non-content IDs.

Collection responses include data and page.nextCursor. Stable UUID surrogates keep internal database IDs, GEDCOM xrefs, and xref-less names out of paths and cursor logs. Cursors are signed to their route and archive. Source files, transcripts, notes, blob keys, private download URLs, and unbounded evidence graphs are never part of these projections.

Standard reads60requests / minute10,000 / day
GEDCOM export1request / minute10 / day
Versioning

Breaking means a new path.

Compatible additions can land in v1. Removing a field, changing its meaning, changing authentication, or otherwise breaking a conforming client requires a new versioned path. Kin Resolve aims to give supported versions at least 180 days of sunset notice.

Read the deprecation policy
Developer Preview terms

Private data deserves deliberate tooling.

The preview is invitation-only and carries no uptime SLA. Keep tokens in trusted server or command-line environments, minimize scopes and expiry, honor archive retention rules, and revoke access when work ends. Never include tokens or private response bodies in support requests.

Read the complete developer guide
Changelog

Contract changes stay visible.

The initial v1 contract remains an unreleased candidate until staging, production, archive-isolation, rate-limit, and immediate-revocation gates pass. Release notes distinguish additions, deprecations, security changes, and intentional exclusions.

Read the API changelog
Developer Preview

Bring one careful integration to the first cohort.

Tell us what you want to build, which archive projections you need, and how you protect private family-history data.