Mementom, patent pending Developer

Mementom Partner API

API Reference

REST endpoints for connecting an anonymous customer relationship, requesting a protected action, and consuming a signed decision.

Build your first integration
Version
v1
Auth URL
https://auth.mementom.app/api/v1
Insights URL
https://mementom.app/api/v1
Format
application/json

Integrate Mementom into your company

Add a Connect button to your website. Let your backend save a useful observation from that visit. Confirm that it reached Mementom.

This walkthrough uses Node.js and Harbor Exchange as the worked example. You keep your own website, products and business logic. Mementom handles the person’s private key verification and the temporary connection.

Your first result: a visitor connects, returns to your site, and sees their connection status. Then your server can contribute a registered insight from a real action.

Start with your app

Already configured? Jump to sessions, QR display, behavioral insights or reading shared values.

1. Register your company’s app

Use an HTTPS development or staging site that your team already controls. This walkthrough calls it https://shop.example.com; replace that address with yours everywhere.

  1. Register your company, or ask your company owner for developer access.
  2. Open your app in the Developer Console. In Integration, enter your website and https://shop.example.com/mementom/return as the return address.
  3. Leave account access off for this first connection. It does not sign a person into an existing customer account.
  4. Download the generated mementom-setup.mjs from your app’s Integration page.

Check: the website and callback belong to your company. You are using your app’s ID, not Harbor’s.

2. Put the modules on your server

Use Node.js 22.12 or later. Download these files into one folder in your backend project, outside its public web directory. Keep their names unchanged.

The SDK makes the Mementom calls. The insight helper manages encrypted connection cookies. The route example connects those functions to your web server.

Add the generated setup file to the same folder. Review and commit these source files in your company repository to keep a known version.

Check: none of these server modules or secrets is included in your frontend bundle.

3. Configure and run setup

Ask your company owner for the existing server credential. Keep it and the app’s matching RSA private key in your server’s secret manager. If this app has no key yet, follow the key-generation instructions.

Set the two values used by the generated setup file, then run node mementom-setup.mjs from its folder. Setup registers the public key and prepares the connection configuration. It does not send your private key.

In Insights → Catalog, register the field you want to contribute. Under Validation → Datasets, create a Company activity dataset containing that field. Copy its ID. Validate a value before sending a real observation.

For a Harbor-style shop, start with one meaningful shopping observation. Use its registered field key and allowed values exactly; do not assume Harbor’s dataset IDs belong to your app.

Check: setup succeeds, your connection challenge is published and selected, and your dataset contains approved fields.

4. Mount the four routes

Initialize the downloaded route example once when your backend starts. Call its handle method before your normal page routes. It uses Node’s request and response objects; your existing HTTPS server or proxy stays in place.

POST /mementom/connect
Starts a connection and redirects to Mementom.
GET /mementom/return
Validates the return, exchanges the code, sets the encrypted session cookie and redirects to your home page.
GET /mementom/status
Returns connection status without exposing the session or insight values.
POST /mementom/disconnect
Ends the connection and clears its cookies.

Keep POST requests on your own origin. Preserve all Set-Cookie headers through your proxy. Exclude callback query strings from access logs.

Check: before connecting, your status route returns {"connected":false}.

5. Add the button to your page

The first integration uses a normal redirect in the same tab. The person completes Mementom’s secure steps and returns to your home page. Your page then checks your own status route.

Place the form in your company’s page and load the status code from your frontend JavaScript. Only show a connected state after your backend confirms it.

Check: Connect → Mementom → your website. The address bar no longer contains code or state. Your page says Connected, and Disconnect returns it to Not connected.

Harbor adds a persistent QR badge and a separate authorization window. Add those after this flow works, using the shared browser controller and Harbor’s full integration guide.

6. Save one real observation

Call saveActivity from your existing server business handler after a real action. Your company chooses the observation; Mementom stores it against the current connection.

For Harbor, viewing a product or saving an item can update a shopping insight. An order placed is distinct from a payment confirmed. Do not trust a browser’s claim that it paid or earned a reward.

  1. Construct values using your registered field keys and types.
  2. Save the event ID, observation time and values with your business event before the first send.
  3. Pass that same saved event to saveActivity(request, event). Keep its ID and contents unchanged when retrying.
  4. Check the returned receipt. A successful write does not automatically allow your company to read or use the values for audience matching.

A valid company session permits registered site observations unless the owner has stopped collection. Reading values and audience matching have separate owner controls. An empty permitted-values response is valid.

Check: the receipt confirms accepted fields. The person can review the activity in Mementom. Sending the same event again produces a duplicate receipt rather than another contribution.

Check your first integration

  • Guest browsing still works.
  • Connect returns to the correct visit and status becomes connected.
  • Cancel or an expired return never creates a new connection.
  • Refreshing the page preserves a valid connection.
  • One real action produces an accepted receipt; its retry is a duplicate.
  • Pausing collection is respected. Sharing controls remain separate.
  • Disconnect removes the connection.

Once these pass, add the capability your business needs next: protected actions, existing customer account sign-in, or offers and campaigns.

Try Harbor Exchange and compare the same steps. Its shopping, pricing and order handling belong to Harbor; your company supplies its own.

Task: connect behavior to the right session

Use the request from the browser that performed the action. The helper reads its encrypted HttpOnly cookie and selects the Mementom session on your server. Your frontend sends neither a session ID nor a keyring ID.

For example, after your server records a product view, pass that request and the saved observation to connection.saveActivity. A second visitor has a different cookie and session. A disconnected visitor cannot contribute through the old session.

Inside the supplied helper, these are the actual SDK calls. current(request) reads and checks the encrypted cookie; it is a helper function, not a browser value.

Check: use two browser profiles. Each visit must contribute only its own observations. Do not replay a guest’s earlier activity into a later connection.

Task: record views, saves and orders

Harbor turns its recorded shopping actions into registered insight values. These are real field keys from its source. Your app must register the corresponding definitions and dataset before using them.

The values are current totals for the connected visit, not increments. If the third product view takes the total to three, send 3. Send only the fields that changed.

Product view
Record that a known product was opened; update the server’s view count.
Save or unsave
Update the saved list first; contribute its resulting count.
Accepted order
Use the server’s persisted order, never browser-supplied price, payment or quantity claims.

The code uses savedObservation: your business event after your normal storage has saved its stable ID, original timestamp and trusted totals. It is not another Mementom API.

Check: refresh or idle polling produces no new write. The same saved event can be retried without changing its contents.

Task: use permitted insights

Read on your backend using the same request’s connection. Only values currently shared with your application are returned. Use them to choose your own content or product order.

Do not interpret an empty list as a lost connection. It can mean the person has not shared values, or that previous values expired. Keep your ordinary experience available.

Check: changing the owner’s sharing choice changes the next read. Saving, sharing and audience matching stay separate.

Task: display the session QR

A QR code is an image of an issued link. For Harbor’s phone-to-desktop flow, that link comes from Mementom’s remote ceremony service. The relay returns completion to the browser visit that requested it.

This rendering function uses the same local QR encoder as Harbor. It makes no external image request. Give it the url and expiresAt from an issued relay response, plus your configured Mementom authorization origin.

Save the renderer and qr-code.js together in your browser assets. Put the encoder under their vendor/ folder and retain its license.

Session binding matters: Harbor’s relay endpoints are specific to its Mementom-hosted integration. The downloadable company route example above handles a same-browser return. It does not yet expose the company relay needed to connect an original desktop visit from a phone.

Use the next example to follow Harbor’s real flow. Encoding an ordinary connection URL as a QR does not supply that relay or transfer the original browser’s cookie.

How Harbor finishes a QR connection

This is the working pattern inside Harbor, using its existing routes and shared components. It shows where session preparation, QR display, completion and refresh meet.

  1. Harbor’s backend creates a signed connection request and binds it to the current visit.
  2. The shared badge asks Mementom’s relay for the phone URL and renders its QR.
  3. The phone finishes the service-issued ceremony. The relay supplies a verified continuation to the original browser.
  4. The original browser calls Harbor’s return handler. The server checks the pending state and exchanges the one-use code.
  5. Harbor refreshes its backend connection state, then enables connected shopping and insight contributions.

api, refreshConnection and the route names below belong to Harbor. An external company needs the corresponding registered relay and return integration; these are not additional SDK methods.

Check: the phone completes the ceremony while the original desktop visit becomes connected. Another open visit must stay unchanged.

Start here

What Mementom does

Mementom lets a person privately prove that they are the same person a company has seen before—or that they have the right to complete one exact action—without giving that company their name, an email tied to their identity, private image, or private caption.

The person creates a private key ring from images and captions they choose. A company can then ask Mementom one clear question at the moment it matters. Mementom checks the person privately and returns only the result the company needs.

The central idea

What is a challenge?

A challenge is one time-limited request from a company asking a person to prove that they have the right to do one exact thing.

That might mean signing in, entering a protected part of a site, taking a sensitive action, authorizing an action on the person’s behalf, receiving chosen personalization, or continuing a prior session or experience. A challenge can also require proof of the right to authorize a real-world event, such as allowing a technician into a home.

A challenge is not the person’s identity, an open-ended login, or permission to do anything else. It is bound to the action and context the company describes when it creates the challenge.

One challenge, from beginning to end

  1. The company sets up

    It registers its application and names the kinds of requests it will make with challenge tags.

  2. The person connects

    The company starts a connection. The person chooses Mementom, and the company keeps only the anonymous relationship Mementom returns.

  3. The company asks

    At the moment of need, it creates one challenge that says exactly what is being requested and what it applies to.

  4. Mementom checks privately

    Inside the secure Mementom window, the keyring supplies the required key image. The person enters its matching private caption. The requesting app receives only the scoped result, never the image, caption or credential proof.

  5. The company gets one result

    It retrieves the decision, confirms it matches the request, and uses it once before taking the action.

Plain-language glossary

The words used in this API

These names describe the pieces of the relationship. Select any linked term to jump to the API operation that creates or uses it.

Overview

Authentication

Partner requests use an HTTP Bearer credential issued when Mementom provisions a vendor. Send the credential only from backend services over HTTPS.

The credential has the form {vendorId}.{clientSecret}. Mementom authenticates it and derives the vendor scope. Do not repeat vendorId in request bodies unless an endpoint explicitly documents the field.

Headers

HeaderRequiredValue
AuthorizationYesBearer {vendorCredential}
Content-TypePOSTapplication/json

Connect with three server settings

Save your website and return address in Integration, then download and run server setup. It includes your Application ID, registers the public key through the API, and prepares the selected challenges. Keep two secrets on your server: the company credential and private RSA response key.

The SDK retrieves the saved configuration, matches your private key locally, and loads decision-signing keys. It keeps settings in server memory for up to 60 seconds. Each attempt retains its original immutable settings; refreshes cannot change a pending attempt.

Origin, callbacks, company ID, challenge IDs and response-key IDs are not separate deployment settings. If you use the optional SDK cookie helper, keep its encryption key in your server’s secret store.

Download server SDK · Setup and migration guide

GET /applications/{applicationId}/integration-config is authenticated, vendor-scoped and read-only. POST /challenge-definitions/save uses the console’s validation and version checks for programmatic setup. The full contracts are in OpenAPI.

Link an account to the current keyring

Use POST /access-rights/accounts/link after Mementom Login and your own account verification, bound to the same server-side attempt. Mementom derives the keyring from the current session.

  1. Verify the person’s existing app account or complete your normal new-account onboarding.
  2. Generate and store one opaque account reference on your server.
  3. Call linkAccountAccess with the current personal Login session.
  4. After sign-in, call useAccountAccess and open the mapped account only when allowed. No extra prompt or QR is needed.

The link persists across fresh Login sessions. Use listAccountAccess to discover permitted account references and checkAccountAccess to check current permission. New setup creates no account challenge. Existing integrations with a published protected-action policy retain its verified/consumed result. A denied check never creates a replacement account.

Invitations still grant new rights

Brands, vendors and partners can continue offering rights through authorization invitations. Account invitations remain private and single-claim; other rights retain their existing reusable QR/link options.

Account linking, invitations and recovery guide

Overview

Object IDs

IDs are opaque strings. Store them exactly as returned. Prefixes identify the object type; they do not grant access.

PrefixObjectCreated by
vnd_VendorVendor provisioning
app_ApplicationCreate application
pol_Assurance policyCreate assurance policy
rkey_Response keyCreate response key
ctag_Challenge tagCreate challenge tag
sessionIdRandom, expiring app sessionConnection code exchange; fresh for each new sign-in
chal_ChallengeCreate challenge
result_Decision resultCompleted challenge

Write and retrieve company insights

Your backend sends the current application session. Mementom resolves its keyring and returns only this app’s permitted values. Another company, or another app you own, has a separate record—even for the same field name.

1. Configure your application

  1. Sign in to the Developer Console. Register your app, exact HTTPS callback and allowed site origins.
  2. Use your existing company server credential, or have the owner create the first credential in company settings. It appears once. Replacing it invalidates the previous credential for all apps using it.
  3. Publish the app’s Login connection challenge, select it in Integration → SDK setup, and register the server’s public RSA key. A draft or OFF challenge does not issue an authenticated session. Use your intended access policy; insight use does not require nCent’s membership policy or an unrelated action challenge.
  4. In Insights → Catalog, register a standard field such as shopping.interest. Custom fields need owner/admin approval in Review.
  5. In Validation → Datasets, register a non-sample Company activity dataset. Copy its ID and your application ID. Validate synthetic observations before sending live events.

2. Use the consolidated SDK

Use Node.js 22.12 or later. Save the server SDK and example together outside your public web directory. Add the browser controller to your browser assets. No npm package, repository access or Mementom database access is needed.

The server SDK includes authentication, insights and the optional session cookie helper. Review and commit the downloaded modules in your company repository to pin the exact source. Do not import a changing remote URL at runtime. Existing private-package users can use @mementom/sdk, @mementom/sdk/insights and @mementom/sdk/session-cookie.

3. Connect the current visit

The example exports createCompanyInsights. Await its initialization with the three SDK inputs: application ID, company credential and private RSA key. Also supply the dataset ID for your business data and your existing persistent 32-byte cookie encryption key. The same key must be available to every instance of your backend.

  1. On a direct tap, open a named authorization popup pointing to your backend’s sign-in route. Require a same-origin request. If blocked, offer a retry; do not collect credentials on your page.
  2. Call beginSignIn(), set its setCookie response header and send a 303 to its location. The prepared URL preserves Mementom’s issued request and required popup marker.
  3. At your registered callback, call finishSignIn(request, {code, state}) with the URL parameters. Append both returned cookies as separate Set-Cookie headers, then redirect to your own clean completion page. Never log the callback query.
  4. The completion page may close the popup; the original site refreshes its own status. Keep session IDs and company credentials out of browser JavaScript. For QR, cancel/status and advanced destination flows, reuse the established authorization integration.

4. Respect collection and sharing choices

A valid company session permits registered company observations unless the owner has stopped collection. Saving a value does not enable company reads or audience matching. Those have separate owner controls in Mementom.

Honor the current dataset, destination scope and owner settings. Company reads return only permitted values; an empty result is valid. Your company cannot auto-enable sharing or audience matching.

5. Write and read

Call saveActivity(request, event) with meaningful insight values, such as an expressed preference or confirmed purchase, then readActivity(request). Persist the event ID, original observation time and values before sending. Reuse them for bounded retries. A browser-submitted claim is not evidence of a purchase or other business event.

The cookie carries only a temporary encrypted session; you do not need a consumer/keyring database. On a later sign-in, Mementom resolves the fresh session to the same permitted, unexpired records. Never use a saved session as permanent identity.

Use signOut(request, registeredReturnUrl) for logout, with your fixed company return URL and CSRF protection. Apply both cookie-clearing headers and send a 303 to the returned location so Mementom also clears this app’s browser-held file access. If no session cookie exists, location is absent; return to your own signed-out page. The server session is invalidated before this redirect.

Acceptance checklist

Verify write/readback, a later session, no permission, withdrawal, changed domains, expired sessions and duplicate events. Write different values for the same field in two company apps and confirm each retrieves only its own. No bounty or cross-company disclosure is enabled by this integration.

Insight HTTP contract

POST JSON to https://mementom.app/api/v1/insight-integration/ with Authorization: Bearer <company credential>. Calls carrying browser Origin or Sec-Fetch-Site headers are rejected. Never proxy a browser-selected ring, app or arbitrary insight payload.

catalog
Send {applicationId}. Returns definitions, datasets and the current revision.
validate
Send applicationId, expectedRevision, datasetId and 1–50 samples. Returns per-row results; writes no consumer data. Validation advances the workspace revision, so reload the catalog before ingesting.
ingest
Send applicationId, sessionId, expectedRevision, datasetId, eventId and sample. The sample is a live observation envelope—not a dry run. Returns a receipt with accepted count and duplicate flag.
read
Send {applicationId, sessionId}. Returns schemaVersion and values containing key, version, value, observedAt, expiresAt and provenance. No persistent holder ID is returned.

eventId is 8–80 letters, digits, underscores or hyphens. Values must match the dataset’s approved enum, boolean or bounded-integer definitions. Observation times include a timezone, cannot be future-dated, and must remain within each field’s TTL.

Deduplication retains the last 500 events per application/keyring. Do not replay older business events indefinitely. The dataset’s legacy status label is not permission: ingestion requires a non-sample company-asserted dataset, approved fields, current session and holder consent.

Failure handling

  • 401: check your credential; insight_session_required means sign in again. Do not replace the session with a remembered identity.
  • 403: insight_permission_required means ask the holder to review the dataset. company_server_required means move the call to your backend.
  • 409: refresh the catalog and inspect the error. A reused event with different data or an older conflicting value must not be forced through by changing its time.
  • 400/404: correct the schema or registered application. Do not retry unchanged input.
  • Network failure: retry with bounded backoff and the identical persisted event. Log status, error code and activityId, not credentials, session IDs or insight values.

Full request and response schemas are in OpenAPI 3.1. Collection withdrawal stops writes, reads and matching. An individual “Don’t share” choice blocks retrieval of that value; it does not turn off separately enabled collection.

Overview

Errors

The API uses standard HTTP response status codes and returns a stable machine-readable error value. A human-readable message may also be present.

StatusMeaning
400Invalid request or unavailable ceremony state
401Missing or invalid vendor credential
404Resource is unavailable in the authenticated vendor scope
409Version, idempotency, lifecycle, or consumption conflict
500Unexpected service error

Idempotency

gateRequestId is the idempotency key for creating a challenge. Replaying an identical request returns the same challenge. Reusing the ID with changed bindings returns 409 gate_request_conflict.

POST/applications

Create an application

Registers one web, native, service, or device application under the authenticated vendor.

Body parameters

ParameterTypeRequired
displayNamestringYes
applicationTypeenumYes
redirectUrisstring[]Yes
allowedOriginsstring[]Yes
brandingobjectNo
POST/assurance-policies

Create an assurance policy

Defines the minimum number of complete memkey proofs required for a relationship and the number of complete-key proofs required for recovery. Two distinct image-and-caption pairs remain two memkeys even when they use the same image.

Body parameters

ParameterTypeRequired
namestringYes
minimumMemkeysintegerYes
recoveryProofsintegerNo
POST/response-keys

Create a response key

Registers the RSA public JWK Mementom uses to encrypt decisions. Keep the corresponding private key in the partner backend.

Body parameters

ParameterTypeRequired
applicationIdstringNo
publicJwkRSA JWKYes
POST/challenge-tags

Create a challenge tag

Creates a reusable protected-action type. Runtime challenge requests use the returned challengeTagId, not the human-readable key.

Body parameters

ParameterTypeRequired
keystringYes
displayNamestringYes
descriptionstringYes
coverageCountintegerNo
minimumMemkeysintegerNo
retryLimitintegerNo
distinctFromAccessbooleanNo
responseKeyIdstringYes
networkPolicyIdstringNo
GET/challenge-tags

List challenge tags

Returns every challenge tag owned by the authenticated vendor.

POST/connection-requests

Create a connection request

Starts a one-use Mementom connection ceremony. Persist the cryptographic state before opening the returned consumerUrl.

For a Login challenge published in the console, send {applicationId: configuration.applicationId, challengeActionId: configuration.challenges.login.actionId, state} from an SDK attempt snapshot (include its responseDestinationId when present). Policy, registered callback and displayed context come from that saved challenge. The policy and visible-context fields below apply to the separate explicit-configuration mode; do not add them to the managed Login request.

If establishing the relationship is also the first exact protected action, include authorization. The person then provides one Mementom proof; exchanging the returned code creates the anonymous session and returns a resultId for that same action. Omit it when connection and authorization are separate moments.

Body parameters

ParameterTypeRequired
applicationIdstringYes
policyIdstringYes
returnUriURIYes
visiblePurposestringYes
requestedRightsstring[]Yes
visibleConsequencestringYes
statestringYes
opaqueCustomerReferencestringNo
authorizationobjectNo
POST/connections/session

Exchange a connection code

After validating the callback state, exchange the one-use code for a short-lived Mementom session without a persistent key-ring identifier.

Also verify that the returned requestId equals the request saved when sign-in began. The downloadable integration example binds both state and request ID in an encrypted, expiring browser cookie.

When the connection request carried an authorization object, this response also includes resultId. Retrieve, verify, and consume it through the normal decision flow; do not create a second challenge for the same action.

Body parameters

ParameterTypeRequired
applicationIdstringYes
codestringYes
POST/connections/remove

Remove a connection

Resolves the current applicationId and sessionId inside Mementom, then terminates that company connection and invalidates its active sessions, challenges, decisions, and entitlements.

POST/challenges

Create a challenge

Creates one protected action bound to an application, session, anonymous subject, challenge type, application state, and exact resource digest.

Body parameters

ParameterTypeRequired
applicationIdstringYes
sessionIdstringYes
challengeTagIdstringYes
gateRequestIdstringYes
statestringYes
actionstringYes
resourceDigestSHA-256 digestYes
visibleDetailsobjectYes
returnUriURIYes

visibleDetails

PropertyTypeRequired
actionLabelstringNo
resourceSummarystringYes
consequencestringYes
expiresAtISO 8601No
POST/decisions/retrieve

Retrieve a decision

Returns the encrypted decision envelope associated with the opaque result ID. The result must belong to the authenticated vendor and must not be expired.

Body parameters

ParameterTypeRequired
resultIdstringYes
POST/decisions/consume

Consume a decision

Atomically consumes a verified decision. The SDK normally performs retrieval, decryption, signature verification, binding verification, and consumption through handleResult.

Body parameters

ParameterTypeRequired
applicationIdstringYes
sessionIdstringYes — current session
resultIdstringYes
noncestringYes

Issue authorization links and QR codes

Your backend can issue an authorization when your own rules confirm an achievement or unlock a challenge. Return its invitationUrl or qrSvg to your page. Keep the company credential on your server.

Optional capabilityPolicy applies the same read/write capabilities and offer filters shown in Permissions and Shared key settings. Use offers.items for viewing and responding, and offers.definitions for authoring. Vendor IDs, any selected tag and a strict price ceiling narrow access together. Blank filters add no restriction. See KeyCapabilityPolicy in the API contract.

Use claimLimit: 1 for one keyring holder. Use claimLimit: null for unlimited keyring holders, such as a public company-access QR. Omit claimMinutes for no claim deadline with either option. Creating or viewing an invitation does not grant access; the holder must accept it.

Time limits and maximumUses apply separately to each granted right. Repeated claims preserve the existing right, including spent uses and revocation. A reusable QR is public access; anyone who proves control of a keyring can accept.

Claiming adds permission; it does not sign the holder into your application. Use the existing connection ceremony if your backend needs a verified company relationship.

Manage invitations and rights with POST /access-rights/list and POST /access-rights/manage. Check current permission with POST /access-rights/check. Canceling a reusable QR stops future claims; edit or revoke granted rights separately.

POST/entitlements/grant

Grant an entitlement

Uses the current app session to assign one challenge tag. Mementom resolves the key ring privately. expiresAt is optional.

POST/entitlements/remove

Remove an entitlement

Removes access to one challenge tag and invalidates stale decisions for that entitlement.

POST/webhooks

Create a webhook endpoint

Registers an HTTPS receiver. The HMAC-SHA256 signing secret is returned once. Verify the raw request body with the timestamp and signature headers before processing an event.

Body parameters

ParameterTypeRequired
endpointUrlHTTPS URIYes

Delivery headers

HeaderValue
mementom-event-idUnique event ID
mementom-timestampUnix timestamp
mementom-signaturev1={base64url HMAC}
GET/events

List vendor events

Returns up to 100 recent events for the authenticated vendor, including decision.available and connection lifecycle events.

GET/audit

List audit events

Returns sanitized audit events for the authenticated vendor. Pass connectionId as an optional query parameter to filter the result.

All operations

Endpoint index

MethodPathPurpose
POST/applicationsCreate an application
POST/assurance-policiesCreate an assurance policy
POST/assurance-policies/updateUpdate policy with optimistic versioning
POST/response-keysCreate a decision response key
POST/response-keys/rotateRotate or compromise a response key
POST/network-policiesCreate a network policy
POST/challenge-tagsCreate a challenge tag
GET/challenge-tagsList challenge tags
POST/challenge-tags/updateUpdate challenge-tag configuration
POST/challenge-tags/lifecycleSuspend, activate, or retire a tag
POST/connection-requestsCreate a connection ceremony
POST/connections/sessionExchange a one-use connection code
POST/connections/logoutEnd a session; follow the returned authorization-surface cleanup URL
POST/insight-integration/catalogRead this app’s registered fields and datasets (insights origin)
POST/insight-integration/validateValidate synthetic samples without writing holder data (insights origin)
POST/insight-integration/ingestSave a permitted observation through the current session (insights origin)
POST/insight-integration/readRetrieve this app’s permitted current values (insights origin)
POST/connections/removeRemove a vendor relationship
POST/access-rights/accounts/linkLink a verified app account using the current personal session
POST/access-rights/accountsDiscover accounts permitted for the current app session
POST/access-rights/checkCheck current permission for an exact account or right
POST/authorization-invitationsInvite a keyring holder to accept new rights
POST/entitlements/grantGrant access to a challenge tag
POST/entitlements/removeRemove access to a challenge tag
POST/challengesCreate a protected action
POST/decisions/retrieveRetrieve an encrypted decision
POST/decisions/consumeAtomically consume a decision
POST/forced-challenge-campaignsCreate a forced-challenge campaign
POST/forced-challenge-campaigns/activateActivate a scheduled campaign
POST/webhooksRegister a webhook endpoint
GET/eventsList vendor events
GET/auditList sanitized audit events