Documentation · API reference
Every endpoint
This page as Markdown, or in an AI chatMore ways to read this page
Made from the API's own description, so it is never behind. For a program, the description itself is at /api/v1/openapi.json, in OpenAPI 3.
# Every endpoint
> tidekeeper's API reference: https://tidekeeper.eu/docs/api/reference
Made from the API's own description, so it is never behind. For a program, the description itself is at https://tidekeeper.eu/api/v1/openapi.json, in OpenAPI 3.
## Figures
- [What every figure means](https://tidekeeper.eu/docs/api/get-definitions.md): `GET /api/v1/definitions`
- [Every site at a glance](https://tidekeeper.eu/docs/api/get-overview.md): `GET /api/v1/overview`
- [Where readers of a page came from inside the site, and went next](https://tidekeeper.eu/docs/api/get-sites-site-around.md): `GET /api/v1/sites/{site}/around`
- [What changed](https://tidekeeper.eu/docs/api/get-sites-site-changed.md): `GET /api/v1/sites/{site}/changed`
- [Hits received and not counted, by reason](https://tidekeeper.eu/docs/api/get-sites-site-left-out.md): `GET /api/v1/sites/{site}/left-out`
- [Real time](https://tidekeeper.eu/docs/api/get-sites-site-live.md): `GET /api/v1/sites/{site}/live`
- [The page overlay](https://tidekeeper.eu/docs/api/get-sites-site-overlay.md): `GET /api/v1/sites/{site}/overlay`
- [Event properties](https://tidekeeper.eu/docs/api/get-sites-site-props.md): `GET /api/v1/sites/{site}/props`
- [Figures over time](https://tidekeeper.eu/docs/api/get-sites-site-series.md): `GET /api/v1/sites/{site}/series`
- [Figures for a period](https://tidekeeper.eu/docs/api/get-sites-site-stats.md): `GET /api/v1/sites/{site}/stats`
- [Figures for a period, as CSV](https://tidekeeper.eu/docs/api/get-sites-site-stats-csv.md): `GET /api/v1/sites/{site}/stats.csv`
- [The stream for one site](https://tidekeeper.eu/docs/api/get-sites-site-stream.md): `GET /api/v1/sites/{site}/stream`
- [A site's saved views](https://tidekeeper.eu/docs/api/get-sites-site-views.md): `GET /api/v1/sites/{site}/views`
- [Save a view of a site's figures, under a name](https://tidekeeper.eu/docs/api/post-sites-site-views.md): `POST /api/v1/sites/{site}/views`
- [When in the week readers come: each hour of each weekday](https://tidekeeper.eu/docs/api/get-sites-site-when.md): `GET /api/v1/sites/{site}/when`
- [How a figure was made](https://tidekeeper.eu/docs/api/get-sites-site-why.md): `GET /api/v1/sites/{site}/why`
- [Delete a saved view](https://tidekeeper.eu/docs/api/delete-views-id.md): `DELETE /api/v1/views/{id}`
## Sites
- [Your sites](https://tidekeeper.eu/docs/api/get-sites.md): `GET /api/v1/sites`
- [Add a site](https://tidekeeper.eu/docs/api/post-sites.md): `POST /api/v1/sites`
- [Take a site another account offered](https://tidekeeper.eu/docs/api/post-sites-offered.md): `POST /api/v1/sites-offered`
- [One site](https://tidekeeper.eu/docs/api/get-sites-site.md): `GET /api/v1/sites/{site}`
- [Change a site's settings](https://tidekeeper.eu/docs/api/patch-sites-site.md): `PATCH /api/v1/sites/{site}`
- [Delete a site](https://tidekeeper.eu/docs/api/delete-sites-site.md): `DELETE /api/v1/sites/{site}`
- [GET /api/v1/sites/{site}/arriving](https://tidekeeper.eu/docs/api/get-sites-site-arriving.md): `GET /api/v1/sites/{site}/arriving`
- [Post ask](https://tidekeeper.eu/docs/api/post-sites-site-ask.md): `POST /api/v1/sites/{site}/ask`
- [Every change to a site's settings: who, what, when, old and new](https://tidekeeper.eu/docs/api/get-sites-site-changes.md): `GET /api/v1/sites/{site}/changes`
- [Look at a page of the site: does it load, and is the tag in it?](https://tidekeeper.eu/docs/api/post-sites-site-check.md): `POST /api/v1/sites/{site}/check`
- [What deleting a site would take with it](https://tidekeeper.eu/docs/api/get-sites-site-holds.md): `GET /api/v1/sites/{site}/holds`
- [A site's icon](https://tidekeeper.eu/docs/api/get-sites-site-icon.md): `GET /api/v1/sites/{site}/icon`
- [What the install page shows](https://tidekeeper.eu/docs/api/get-sites-site-install.md): `GET /api/v1/sites/{site}/install`
- [Post offer](https://tidekeeper.eu/docs/api/post-sites-site-offer.md): `POST /api/v1/sites/{site}/offer`
- [Delete offer](https://tidekeeper.eu/docs/api/delete-sites-site-offer.md): `DELETE /api/v1/sites/{site}/offer`
- [Drop everything counted for a site and keep the site](https://tidekeeper.eu/docs/api/post-sites-site-reset.md): `POST /api/v1/sites/{site}/reset`
- [The stored copies of a site's pages](https://tidekeeper.eu/docs/api/get-sites-site-snapshots.md): `GET /api/v1/sites/{site}/snapshots`
- [Store a copy of one of the site's own pages](https://tidekeeper.eu/docs/api/post-sites-site-snapshots.md): `POST /api/v1/sites/{site}/snapshots`
- [Remove the copies of a page](https://tidekeeper.eu/docs/api/delete-sites-site-snapshots.md): `DELETE /api/v1/sites/{site}/snapshots`
- [Where a copy of a page can be shown for the next hour](https://tidekeeper.eu/docs/api/get-sites-site-snapshots-frame.md): `GET /api/v1/sites/{site}/snapshots/frame`
- [Every table that holds anything about a site](https://tidekeeper.eu/docs/api/get-sites-site-stores.md): `GET /api/v1/sites/{site}/stores`
## Events, goals and notes
- [Delete a note](https://tidekeeper.eu/docs/api/delete-annotations-id.md): `DELETE /api/v1/annotations/{id}`
- [One goal](https://tidekeeper.eu/docs/api/get-goals-id.md): `GET /api/v1/goals/{id}`
- [Change a goal](https://tidekeeper.eu/docs/api/patch-goals-id.md): `PATCH /api/v1/goals/{id}`
- [Delete a goal](https://tidekeeper.eu/docs/api/delete-goals-id.md): `DELETE /api/v1/goals/{id}`
- [Every version of a goal's definition, oldest first](https://tidekeeper.eu/docs/api/get-goals-id-versions.md): `GET /api/v1/goals/{id}/versions`
- [A site's notes on the chart](https://tidekeeper.eu/docs/api/get-sites-site-annotations.md): `GET /api/v1/sites/{site}/annotations`
- [Add a note to the chart](https://tidekeeper.eu/docs/api/post-sites-site-annotations.md): `POST /api/v1/sites/{site}/annotations`
- [Send an event](https://tidekeeper.eu/docs/api/post-sites-site-events.md): `POST /api/v1/sites/{site}/events`
- [Send events in a batch](https://tidekeeper.eu/docs/api/post-sites-site-events-batch.md): `POST /api/v1/sites/{site}/events/batch`
- [A site's goals](https://tidekeeper.eu/docs/api/get-sites-site-goals.md): `GET /api/v1/sites/{site}/goals`
- [Add a goal](https://tidekeeper.eu/docs/api/post-sites-site-goals.md): `POST /api/v1/sites/{site}/goals`
- [Post goal test](https://tidekeeper.eu/docs/api/post-sites-site-goals-test.md): `POST /api/v1/sites/{site}/goals/test`
- [The picker](https://tidekeeper.eu/docs/api/get-sites-site-pick.md): `GET /api/v1/sites/{site}/pick`
- [The elements picked on a site's pages](https://tidekeeper.eu/docs/api/get-sites-site-picks.md): `GET /api/v1/sites/{site}/picks`
- [Count a click on what a selector matches as an event](https://tidekeeper.eu/docs/api/post-sites-site-picks.md): `POST /api/v1/sites/{site}/picks`
- [Stop counting clicks on a picked element](https://tidekeeper.eu/docs/api/delete-sites-site-picks-id.md): `DELETE /api/v1/sites/{site}/picks/{id}`
- [The stretches of a site left out of comparisons](https://tidekeeper.eu/docs/api/get-sites-site-stretches.md): `GET /api/v1/sites/{site}/stretches`
- [Leave a stretch out of comparisons](https://tidekeeper.eu/docs/api/post-sites-site-stretches.md): `POST /api/v1/sites/{site}/stretches`
- [Undo it: it counts in comparisons again](https://tidekeeper.eu/docs/api/delete-sites-site-stretches-id.md): `DELETE /api/v1/sites/{site}/stretches/{id}`
## Imports and exports
- [The site as a .zip: site.json and daily.csv](https://tidekeeper.eu/docs/api/get-sites-site-export.md): `GET /api/v1/sites/{site}/export`
- [A site's imports](https://tidekeeper.eu/docs/api/get-sites-site-imports.md): `GET /api/v1/sites/{site}/imports`
- [Import a file](https://tidekeeper.eu/docs/api/post-sites-site-imports.md): `POST /api/v1/sites/{site}/imports`
- [What an import would do](https://tidekeeper.eu/docs/api/post-sites-site-imports-check.md): `POST /api/v1/sites/{site}/imports/check`
- [Fetch a stretch of a Matomo's reports](https://tidekeeper.eu/docs/api/post-sites-site-imports-matomo.md): `POST /api/v1/sites/{site}/imports/matomo`
- [Take an import out](https://tidekeeper.eu/docs/api/delete-sites-site-imports-id.md): `DELETE /api/v1/sites/{site}/imports/{id}`
## Hard mode: visitors who agreed
- [The banner](https://tidekeeper.eu/docs/api/get-sites-site-banner.md): `GET /api/v1/sites/{site}/banner`
- [Save the draft](https://tidekeeper.eu/docs/api/put-sites-site-banner-draft.md): `PUT /api/v1/sites/{site}/banner/draft`
- [Publish the draft](https://tidekeeper.eu/docs/api/post-sites-site-banner-publish.md): `POST /api/v1/sites/{site}/banner/publish`
- [How many were asked and what they answered, day by day](https://tidekeeper.eu/docs/api/get-sites-site-consent.md): `GET /api/v1/sites/{site}/consent`
- [Every record as CSV, oldest first: what a regulator is handed](https://tidekeeper.eu/docs/api/get-sites-site-consent-export.md): `GET /api/v1/sites/{site}/consent/export`
- [Every answer and every withdrawal, newest first](https://tidekeeper.eu/docs/api/get-sites-site-consent-records.md): `GET /api/v1/sites/{site}/consent/records`
- [One record, with what the visitor was shown, word for word](https://tidekeeper.eu/docs/api/get-sites-site-consent-records-id.md): `GET /api/v1/sites/{site}/consent/records/{id}`
- [A site's funnels](https://tidekeeper.eu/docs/api/get-sites-site-funnels.md): `GET /api/v1/sites/{site}/funnels`
- [Add a funnel: its steps, in order](https://tidekeeper.eu/docs/api/post-sites-site-funnels.md): `POST /api/v1/sites/{site}/funnels`
- [A funnel across visits for visitors who agreed](https://tidekeeper.eu/docs/api/get-sites-site-funnels-id.md): `GET /api/v1/sites/{site}/funnels/{id}`
- [Change a funnel](https://tidekeeper.eu/docs/api/put-sites-site-funnels-id.md): `PUT /api/v1/sites/{site}/funnels/{id}`
- [Delete a funnel](https://tidekeeper.eu/docs/api/delete-sites-site-funnels-id.md): `DELETE /api/v1/sites/{site}/funnels/{id}`
- [A site's mode](https://tidekeeper.eu/docs/api/get-sites-site-hard.md): `GET /api/v1/sites/{site}/hard`
- [Save what hard mode keeps and for how long](https://tidekeeper.eu/docs/api/put-sites-site-hard.md): `PUT /api/v1/sites/{site}/hard`
- [Turn hard mode off, and say what happens to what was collected](https://tidekeeper.eu/docs/api/post-sites-site-hard-off.md): `POST /api/v1/sites/{site}/hard/off`
- [Turn hard mode on](https://tidekeeper.eu/docs/api/post-sites-site-hard-on.md): `POST /api/v1/sites/{site}/hard/on`
- [Say where the privacy policy is and that it has the paragraph](https://tidekeeper.eu/docs/api/post-sites-site-hard-policy.md): `POST /api/v1/sites/{site}/hard/policy`
- [What came before and after a page or an event](https://tidekeeper.eu/docs/api/get-sites-site-paths.md): `GET /api/v1/sites/{site}/paths`
- [Visitors' requests about their data, newest first](https://tidekeeper.eu/docs/api/get-sites-site-requests.md): `GET /api/v1/sites/{site}/requests`
- [Open a request for someone who wrote to you](https://tidekeeper.eu/docs/api/post-sites-site-requests.md): `POST /api/v1/sites/{site}/requests`
- [Close a request without doing it, saying why](https://tidekeeper.eu/docs/api/post-sites-site-requests-id-close.md): `POST /api/v1/sites/{site}/requests/{id}/close`
- [Do what a request asks: hand over the copy, or delete](https://tidekeeper.eu/docs/api/post-sites-site-requests-id-finish.md): `POST /api/v1/sites/{site}/requests/{id}/finish`
- [Of the visitors first seen in a week or month](https://tidekeeper.eu/docs/api/get-sites-site-retention.md): `GET /api/v1/sites/{site}/retention`
- [Revenue in one currency, and who gets the credit three ways](https://tidekeeper.eu/docs/api/get-sites-site-revenue.md): `GET /api/v1/sites/{site}/revenue`
- [Visitors who agreed, last seen first](https://tidekeeper.eu/docs/api/get-sites-site-visitors.md): `GET /api/v1/sites/{site}/visitors`
- [Every visitor's record, a line of JSON each (IO-06)](https://tidekeeper.eu/docs/api/get-sites-site-visitors-export.md): `GET /api/v1/sites/{site}/visitors-export`
- [Everything held about one visitor](https://tidekeeper.eu/docs/api/get-sites-site-visitors-visitor.md): `GET /api/v1/sites/{site}/visitors/{visitor}`
- [Delete everything held about a visitor](https://tidekeeper.eu/docs/api/delete-sites-site-visitors-visitor.md): `DELETE /api/v1/sites/{site}/visitors/{visitor}`
- [A copy of everything held about a visitor, for them](https://tidekeeper.eu/docs/api/get-sites-site-visitors-visitor-export.md): `GET /api/v1/sites/{site}/visitors/{visitor}/export`
## Alerts and reports
- [Quiet hours](https://tidekeeper.eu/docs/api/get-alert-settings.md): `GET /api/v1/alert-settings`
- [Save quiet hours](https://tidekeeper.eu/docs/api/put-alert-settings.md): `PUT /api/v1/alert-settings`
- [Stop being told about one open problem for some days](https://tidekeeper.eu/docs/api/post-alerts-id-mute.md): `POST /api/v1/alerts/{id}/mute`
- [Be told about an open problem again](https://tidekeeper.eu/docs/api/delete-alerts-id-mute.md): `DELETE /api/v1/alerts/{id}/mute`
- [Open problems on any site](https://tidekeeper.eu/docs/api/get-attention.md): `GET /api/v1/attention`
- [Where alerts go](https://tidekeeper.eu/docs/api/get-channels.md): `GET /api/v1/channels`
- [Add a channel](https://tidekeeper.eu/docs/api/post-channels.md): `POST /api/v1/channels`
- [Rename a channel](https://tidekeeper.eu/docs/api/patch-channels-id.md): `PATCH /api/v1/channels/{id}`
- [Remove a channel](https://tidekeeper.eu/docs/api/delete-channels-id.md): `DELETE /api/v1/channels/{id}`
- [Send a test message to one channel, now, and say how it went](https://tidekeeper.eu/docs/api/post-channels-id-test.md): `POST /api/v1/channels/{id}/test`
- [Every attempt to deliver](https://tidekeeper.eu/docs/api/get-deliveries.md): `GET /api/v1/deliveries`
- [One email for every site of the account](https://tidekeeper.eu/docs/api/get-reports-digest.md): `GET /api/v1/reports/digest`
- [Put digest](https://tidekeeper.eu/docs/api/put-reports-digest.md): `PUT /api/v1/reports/digest`
- [The nightly check on a site's own page](https://tidekeeper.eu/docs/api/get-sites-site-nightly.md): `GET /api/v1/sites/{site}/nightly`
- [What a site's report by email is set to](https://tidekeeper.eu/docs/api/get-sites-site-reports.md): `GET /api/v1/sites/{site}/reports`
- [Put site](https://tidekeeper.eu/docs/api/put-sites-site-reports.md): `PUT /api/v1/sites/{site}/reports`
## Sharing
- [A site's shared figures](https://tidekeeper.eu/docs/api/get-share-site.md): `GET /api/v1/share/{site}`
- [A page's view count, for a site that chose to show it](https://tidekeeper.eu/docs/api/get-share-site-count.md): `GET /api/v1/share/{site}/count`
- [Post unlock](https://tidekeeper.eu/docs/api/post-share-site-unlock.md): `POST /api/v1/share/{site}/unlock`
- [What a site shares with people who are not members, and how](https://tidekeeper.eu/docs/api/get-sites-site-share.md): `GET /api/v1/sites/{site}/share`
- [Change what a site shares](https://tidekeeper.eu/docs/api/put-sites-site-share.md): `PUT /api/v1/sites/{site}/share`
- [Post link](https://tidekeeper.eu/docs/api/post-sites-site-share-links.md): `POST /api/v1/sites/{site}/share/links`
- [Delete link](https://tidekeeper.eu/docs/api/delete-sites-site-share-links-id.md): `DELETE /api/v1/sites/{site}/share/links/{id}`
## The workspace
- [What the account is](https://tidekeeper.eu/docs/api/get-account.md): `GET /api/v1/account`
- [Call the account something else (doc/launch.md, 2.4)](https://tidekeeper.eu/docs/api/patch-account.md): `PATCH /api/v1/account`
- [Ask for the account to be deleted, a week from now](https://tidekeeper.eu/docs/api/post-account-deletion.md): `POST /api/v1/account/deletion`
- [Stop a deletion that was asked for](https://tidekeeper.eu/docs/api/delete-account-deletion.md): `DELETE /api/v1/account/deletion`
- [Everything the account has, as one .zip](https://tidekeeper.eu/docs/api/get-account-export.md): `GET /api/v1/account/export`
- [Make another account, yours to own](https://tidekeeper.eu/docs/api/post-accounts.md): `POST /api/v1/accounts`
- [What members did in the account, newest first](https://tidekeeper.eu/docs/api/get-audit.md): `GET /api/v1/audit`
- [Plan and billing](https://tidekeeper.eu/docs/api/get-billing.md): `GET /api/v1/billing`
- [Say who the account buys as](https://tidekeeper.eu/docs/api/post-billing-buyer.md): `POST /api/v1/billing/buyer`
- [Cancel the plan](https://tidekeeper.eu/docs/api/post-billing-cancel.md): `POST /api/v1/billing/cancel`
- [Delete cancel](https://tidekeeper.eu/docs/api/delete-billing-cancel.md): `DELETE /api/v1/billing/cancel`
- [Start paying for a plan](https://tidekeeper.eu/docs/api/post-billing-checkout.md): `POST /api/v1/billing/checkout`
- [Put details](https://tidekeeper.eu/docs/api/put-billing-details.md): `PUT /api/v1/billing/details`
- [Post dpa](https://tidekeeper.eu/docs/api/post-billing-dpa.md): `POST /api/v1/billing/dpa`
- [A payment provider's own events, each checked by its signature](https://tidekeeper.eu/docs/api/post-billing-events-provider.md): `POST /api/v1/billing/events/{provider}`
- [Post plan](https://tidekeeper.eu/docs/api/post-billing-plan.md): `POST /api/v1/billing/plan`
- [The provider's page for the card and the invoices](https://tidekeeper.eu/docs/api/post-billing-portal.md): `POST /api/v1/billing/portal`
- [For a payment provider's relay](https://tidekeeper.eu/docs/api/post-billing-provider.md): `POST /api/v1/billing/provider`
- [A consumer withdraws from the agreement](https://tidekeeper.eu/docs/api/post-billing-withdraw.md): `POST /api/v1/billing/withdraw`
- [The plans this tidekeeper offers](https://tidekeeper.eu/docs/api/get-plans.md): `GET /api/v1/plans`
- [The team](https://tidekeeper.eu/docs/api/get-team.md): `GET /api/v1/team`
- [Post invitation](https://tidekeeper.eu/docs/api/post-team-invitations.md): `POST /api/v1/team/invitations`
- [Delete invitation](https://tidekeeper.eu/docs/api/delete-team-invitations-id.md): `DELETE /api/v1/team/invitations/{id}`
- [Resend invitation](https://tidekeeper.eu/docs/api/post-team-invitations-id-resend.md): `POST /api/v1/team/invitations/{id}/resend`
- [Put member](https://tidekeeper.eu/docs/api/put-team-members-id.md): `PUT /api/v1/team/members/{id}`
- [Delete member](https://tidekeeper.eu/docs/api/delete-team-members-id.md): `DELETE /api/v1/team/members/{id}`
- [Post owner](https://tidekeeper.eu/docs/api/post-team-owner.md): `POST /api/v1/team/owner`
- [Put required](https://tidekeeper.eu/docs/api/put-team-second-step.md): `PUT /api/v1/team/second-step`
- [Your API tokens](https://tidekeeper.eu/docs/api/get-tokens.md): `GET /api/v1/tokens`
- [Make a token](https://tidekeeper.eu/docs/api/post-tokens.md): `POST /api/v1/tokens`
- [Get token about](https://tidekeeper.eu/docs/api/get-tokens-about.md): `GET /api/v1/tokens/about`
- [Revoke a token](https://tidekeeper.eu/docs/api/delete-tokens-id.md): `DELETE /api/v1/tokens/{id}`
## Signing in, and you
- [The new address shown to be theirs](https://tidekeeper.eu/docs/api/post-auth-email-confirm.md): `POST /api/v1/auth/email/confirm`
- [What an invitation is to](https://tidekeeper.eu/docs/api/get-auth-invitation.md): `GET /api/v1/auth/invitation`
- [Accept an invitation: the member is made and signed in](https://tidekeeper.eu/docs/api/post-auth-invitation.md): `POST /api/v1/auth/invitation`
- [Post link](https://tidekeeper.eu/docs/api/post-auth-link.md): `POST /api/v1/auth/link`
- [Email and password sign-in](https://tidekeeper.eu/docs/api/post-auth-login.md): `POST /api/v1/auth/login`
- [Logout](https://tidekeeper.eu/docs/api/post-auth-logout.md): `POST /api/v1/auth/logout`
- [Get reset](https://tidekeeper.eu/docs/api/get-auth-reset.md): `GET /api/v1/auth/reset`
- [Email a link to choose a new password](https://tidekeeper.eu/docs/api/post-auth-reset.md): `POST /api/v1/auth/reset`
- [Post reset finish](https://tidekeeper.eu/docs/api/post-auth-reset-finish.md): `POST /api/v1/auth/reset/finish`
- [What the second step's page shows](https://tidekeeper.eu/docs/api/get-auth-second.md): `GET /api/v1/auth/second`
- [Post second](https://tidekeeper.eu/docs/api/post-auth-second.md): `POST /api/v1/auth/second`
- [What the sign-up page asked before there was one way in](https://tidekeeper.eu/docs/api/post-auth-signup.md): `POST /api/v1/auth/signup`
- [Continue (A): a code by email](https://tidekeeper.eu/docs/api/post-auth-start.md): `POST /api/v1/auth/start`
- [The code](https://tidekeeper.eu/docs/api/post-auth-start-use.md): `POST /api/v1/auth/start/use`
- [Whom the first step is for, for its page](https://tidekeeper.eu/docs/api/get-auth-starting.md): `GET /api/v1/auth/starting`
- [Get ways](https://tidekeeper.eu/docs/api/get-auth-ways.md): `GET /api/v1/auth/ways`
- [Who you are](https://tidekeeper.eu/docs/api/get-me.md): `GET /api/v1/me`
- [Change the name you are shown by](https://tidekeeper.eu/docs/api/patch-me.md): `PATCH /api/v1/me`
- [Act in another of your accounts](https://tidekeeper.eu/docs/api/post-me-account.md): `POST /api/v1/me/account`
- [A new address to sign in with (doc/launch.md](https://tidekeeper.eu/docs/api/post-me-email.md): `POST /api/v1/me/email`
- [Post password](https://tidekeeper.eu/docs/api/post-me-password.md): `POST /api/v1/me/password`
- [The account's devices for push](https://tidekeeper.eu/docs/api/get-me-push.md): `GET /api/v1/me/push`
- [Add the browser this is asked from as a device](https://tidekeeper.eu/docs/api/post-me-push.md): `POST /api/v1/me/push`
- [Remove a device](https://tidekeeper.eu/docs/api/delete-me-push-id.md): `DELETE /api/v1/me/push/{id}`
- [Turn the second step on](https://tidekeeper.eu/docs/api/post-me-second-step.md): `POST /api/v1/me/second-step`
- [Turn it off, with six digits to show it is still theirs](https://tidekeeper.eu/docs/api/post-me-second-step-off.md): `POST /api/v1/me/second-step/off`
- [Post second start](https://tidekeeper.eu/docs/api/post-me-second-step-start.md): `POST /api/v1/me/second-step/start`
- [Get security](https://tidekeeper.eu/docs/api/get-me-security.md): `GET /api/v1/me/security`
- [Get setup](https://tidekeeper.eu/docs/api/get-me-setup.md): `GET /api/v1/me/setup`
- [Fold, open or hide the card; shown again from Settings](https://tidekeeper.eu/docs/api/put-me-setup.md): `PUT /api/v1/me/setup`
- ["Remind me later"](https://tidekeeper.eu/docs/api/post-me-snooze.md): `POST /api/v1/me/snooze`
- [Be reminded again from now](https://tidekeeper.eu/docs/api/delete-me-snooze-what.md): `DELETE /api/v1/me/snooze/{what}`
- [Remove (D2): only while another way in remains afterwards](https://tidekeeper.eu/docs/api/delete-me-social-id.md): `DELETE /api/v1/me/social/{id}`
- [Connect (D2)](https://tidekeeper.eu/docs/api/post-me-social-id-connect.md): `POST /api/v1/me/social/{id}/connect`
- [Where you are signed in: each session, and when it was last used](https://tidekeeper.eu/docs/api/get-sessions.md): `GET /api/v1/sessions`
- [Sign out everywhere else](https://tidekeeper.eu/docs/api/delete-sessions.md): `DELETE /api/v1/sessions`
- [Sign out one session](https://tidekeeper.eu/docs/api/delete-sessions-id.md): `DELETE /api/v1/sessions/{id}`
## For whoever runs tidekeeper
- [Every account, searched, filtered and sorted](https://tidekeeper.eu/docs/api/get-admin-accounts.md): `GET /api/v1/admin/accounts`
- [One account: what it is, and everything that was done to it](https://tidekeeper.eu/docs/api/get-admin-accounts-id.md): `GET /api/v1/admin/accounts/{id}`
- [Stop the account's plan from renewing](https://tidekeeper.eu/docs/api/post-admin-accounts-id-cancel.md): `POST /api/v1/admin/accounts/{id}/cancel`
- [Set the day the account is deleted, a week or more ahead](https://tidekeeper.eu/docs/api/post-admin-accounts-id-deletion.md): `POST /api/v1/admin/accounts/{id}/deletion`
- [Stop a deletion](https://tidekeeper.eu/docs/api/post-admin-accounts-id-deletion-stop.md): `POST /api/v1/admin/accounts/{id}/deletion/stop`
- [Set limits of the account's own, in place of its plan's](https://tidekeeper.eu/docs/api/post-admin-accounts-id-limits.md): `POST /api/v1/admin/accounts/{id}/limits`
- [Back to the plan's limits](https://tidekeeper.eu/docs/api/post-admin-accounts-id-limits-clear.md): `POST /api/v1/admin/accounts/{id}/limits/clear`
- [Write a note about the account, for the other operators](https://tidekeeper.eu/docs/api/post-admin-accounts-id-notes.md): `POST /api/v1/admin/accounts/{id}/notes`
- [Put the account on a plan](https://tidekeeper.eu/docs/api/post-admin-accounts-id-plan.md): `POST /api/v1/admin/accounts/{id}/plan`
- [Have a mail about the plan sent again](https://tidekeeper.eu/docs/api/post-admin-accounts-id-resend.md): `POST /api/v1/admin/accounts/{id}/resend`
- [Count for the account again](https://tidekeeper.eu/docs/api/post-admin-accounts-id-resume.md): `POST /api/v1/admin/accounts/{id}/resume`
- [Stop counting for the account](https://tidekeeper.eu/docs/api/post-admin-accounts-id-suspend.md): `POST /api/v1/admin/accounts/{id}/suspend`
- [Extend the account's trial](https://tidekeeper.eu/docs/api/post-admin-accounts-id-trial.md): `POST /api/v1/admin/accounts/{id}/trial`
- [Withdraw a consumer's account from the agreement](https://tidekeeper.eu/docs/api/post-admin-accounts-id-withdraw.md): `POST /api/v1/admin/accounts/{id}/withdraw`
- [Every invite code](https://tidekeeper.eu/docs/api/get-admin-invites.md): `GET /api/v1/admin/invites`
- [Make an invite code](https://tidekeeper.eu/docs/api/post-admin-invites.md): `POST /api/v1/admin/invites`
- [Withdraw a code not yet used](https://tidekeeper.eu/docs/api/delete-admin-invites-id.md): `DELETE /api/v1/admin/invites/{id}`
- [What operators did, newest first](https://tidekeeper.eu/docs/api/get-admin-log.md): `GET /api/v1/admin/log`
- [Who signed up, what needs someone, and what comes in](https://tidekeeper.eu/docs/api/get-admin-overview.md): `GET /api/v1/admin/overview`
- [One mail to every owner of every account](https://tidekeeper.eu/docs/api/post-admin-tell-owners.md): `POST /api/v1/admin/tell-owners`
- [What this instance runs with](https://tidekeeper.eu/docs/api/get-instance.md): `GET /api/v1/instance`
- [The nightly check, as it last ran on this tidekeeper](https://tidekeeper.eu/docs/api/get-nightly.md): `GET /api/v1/nightly`
- [Run the check now](https://tidekeeper.eu/docs/api/post-nightly.md): `POST /api/v1/nightly`
## Everything else
- [What anyone may know of this deployment](https://tidekeeper.eu/docs/api/get-about.md): `GET /api/v1/about`
- [What this server is](https://tidekeeper.eu/docs/api/get-health.md): `GET /api/v1/health`
- [One published text: its title and its blocks](https://tidekeeper.eu/docs/api/get-texts-id.md): `GET /api/v1/texts/{id}`
- [Every time zone a site can be in](https://tidekeeper.eu/docs/api/get-zones.md): `GET /api/v1/zones`
Figures
- GETWhat every figure means
/api/v1/definitions - GETEvery site at a glance
/api/v1/overview - GETWhere readers of a page came from inside the site, and went next
/api/v1/sites/{site}/around - GETWhat changed
/api/v1/sites/{site}/changed - GETHits received and not counted, by reason
/api/v1/sites/{site}/left-out - GETReal time
/api/v1/sites/{site}/live - GETThe page overlay
/api/v1/sites/{site}/overlay - GETEvent properties
/api/v1/sites/{site}/props - GETFigures over time
/api/v1/sites/{site}/series - GETFigures for a period
/api/v1/sites/{site}/stats - GETFigures for a period, as CSV
/api/v1/sites/{site}/stats.csv - GETThe stream for one site
/api/v1/sites/{site}/stream - GETA site's saved views
/api/v1/sites/{site}/views - POSTSave a view of a site's figures, under a name
/api/v1/sites/{site}/views - GETWhen in the week readers come: each hour of each weekday
/api/v1/sites/{site}/when - GETHow a figure was made
/api/v1/sites/{site}/why - DELETEDelete a saved view
/api/v1/views/{id}
Sites
- GETYour sites
/api/v1/sites - POSTAdd a site
/api/v1/sites - POSTTake a site another account offered
/api/v1/sites-offered - GETOne site
/api/v1/sites/{site} - PATCHChange a site's settings
/api/v1/sites/{site} - DELETEDelete a site
/api/v1/sites/{site} - GETGET /api/v1/sites/{site}/arriving
/api/v1/sites/{site}/arriving - POSTPost ask
/api/v1/sites/{site}/ask - GETEvery change to a site's settings: who, what, when, old and new
/api/v1/sites/{site}/changes - POSTLook at a page of the site: does it load, and is the tag in it?
/api/v1/sites/{site}/check - GETWhat deleting a site would take with it
/api/v1/sites/{site}/holds - GETA site's icon
/api/v1/sites/{site}/icon - GETWhat the install page shows
/api/v1/sites/{site}/install - POSTPost offer
/api/v1/sites/{site}/offer - DELETEDelete offer
/api/v1/sites/{site}/offer - POSTDrop everything counted for a site and keep the site
/api/v1/sites/{site}/reset - GETThe stored copies of a site's pages
/api/v1/sites/{site}/snapshots - POSTStore a copy of one of the site's own pages
/api/v1/sites/{site}/snapshots - DELETERemove the copies of a page
/api/v1/sites/{site}/snapshots - GETWhere a copy of a page can be shown for the next hour
/api/v1/sites/{site}/snapshots/frame - GETEvery table that holds anything about a site
/api/v1/sites/{site}/stores
Events, goals and notes
- DELETEDelete a note
/api/v1/annotations/{id} - GETOne goal
/api/v1/goals/{id} - PATCHChange a goal
/api/v1/goals/{id} - DELETEDelete a goal
/api/v1/goals/{id} - GETEvery version of a goal's definition, oldest first
/api/v1/goals/{id}/versions - GETA site's notes on the chart
/api/v1/sites/{site}/annotations - POSTAdd a note to the chart
/api/v1/sites/{site}/annotations - POSTSend an event
/api/v1/sites/{site}/events - POSTSend events in a batch
/api/v1/sites/{site}/events/batch - GETA site's goals
/api/v1/sites/{site}/goals - POSTAdd a goal
/api/v1/sites/{site}/goals - POSTPost goal test
/api/v1/sites/{site}/goals/test - GETThe picker
/api/v1/sites/{site}/pick - GETThe elements picked on a site's pages
/api/v1/sites/{site}/picks - POSTCount a click on what a selector matches as an event
/api/v1/sites/{site}/picks - DELETEStop counting clicks on a picked element
/api/v1/sites/{site}/picks/{id} - GETThe stretches of a site left out of comparisons
/api/v1/sites/{site}/stretches - POSTLeave a stretch out of comparisons
/api/v1/sites/{site}/stretches - DELETEUndo it: it counts in comparisons again
/api/v1/sites/{site}/stretches/{id}
Imports and exports
- GETThe site as a .zip: site.json and daily.csv
/api/v1/sites/{site}/export - GETA site's imports
/api/v1/sites/{site}/imports - POSTImport a file
/api/v1/sites/{site}/imports - POSTWhat an import would do
/api/v1/sites/{site}/imports/check - POSTFetch a stretch of a Matomo's reports
/api/v1/sites/{site}/imports/matomo - DELETETake an import out
/api/v1/sites/{site}/imports/{id}
Hard mode: visitors who agreed
- GETThe banner
/api/v1/sites/{site}/banner - PUTSave the draft
/api/v1/sites/{site}/banner/draft - POSTPublish the draft
/api/v1/sites/{site}/banner/publish - GETHow many were asked and what they answered, day by day
/api/v1/sites/{site}/consent - GETEvery record as CSV, oldest first: what a regulator is handed
/api/v1/sites/{site}/consent/export - GETEvery answer and every withdrawal, newest first
/api/v1/sites/{site}/consent/records - GETOne record, with what the visitor was shown, word for word
/api/v1/sites/{site}/consent/records/{id} - GETA site's funnels
/api/v1/sites/{site}/funnels - POSTAdd a funnel: its steps, in order
/api/v1/sites/{site}/funnels - GETA funnel across visits for visitors who agreed
/api/v1/sites/{site}/funnels/{id} - PUTChange a funnel
/api/v1/sites/{site}/funnels/{id} - DELETEDelete a funnel
/api/v1/sites/{site}/funnels/{id} - GETA site's mode
/api/v1/sites/{site}/hard - PUTSave what hard mode keeps and for how long
/api/v1/sites/{site}/hard - POSTTurn hard mode off, and say what happens to what was collected
/api/v1/sites/{site}/hard/off - POSTTurn hard mode on
/api/v1/sites/{site}/hard/on - POSTSay where the privacy policy is and that it has the paragraph
/api/v1/sites/{site}/hard/policy - GETWhat came before and after a page or an event
/api/v1/sites/{site}/paths - GETVisitors' requests about their data, newest first
/api/v1/sites/{site}/requests - POSTOpen a request for someone who wrote to you
/api/v1/sites/{site}/requests - POSTClose a request without doing it, saying why
/api/v1/sites/{site}/requests/{id}/close - POSTDo what a request asks: hand over the copy, or delete
/api/v1/sites/{site}/requests/{id}/finish - GETOf the visitors first seen in a week or month
/api/v1/sites/{site}/retention - GETRevenue in one currency, and who gets the credit three ways
/api/v1/sites/{site}/revenue - GETVisitors who agreed, last seen first
/api/v1/sites/{site}/visitors - GETEvery visitor's record, a line of JSON each (IO-06)
/api/v1/sites/{site}/visitors-export - GETEverything held about one visitor
/api/v1/sites/{site}/visitors/{visitor} - DELETEDelete everything held about a visitor
/api/v1/sites/{site}/visitors/{visitor} - GETA copy of everything held about a visitor, for them
/api/v1/sites/{site}/visitors/{visitor}/export
Alerts and reports
- GETQuiet hours
/api/v1/alert-settings - PUTSave quiet hours
/api/v1/alert-settings - POSTStop being told about one open problem for some days
/api/v1/alerts/{id}/mute - DELETEBe told about an open problem again
/api/v1/alerts/{id}/mute - GETOpen problems on any site
/api/v1/attention - GETWhere alerts go
/api/v1/channels - POSTAdd a channel
/api/v1/channels - PATCHRename a channel
/api/v1/channels/{id} - DELETERemove a channel
/api/v1/channels/{id} - POSTSend a test message to one channel, now, and say how it went
/api/v1/channels/{id}/test - GETEvery attempt to deliver
/api/v1/deliveries - GETOne email for every site of the account
/api/v1/reports/digest - PUTPut digest
/api/v1/reports/digest - GETThe nightly check on a site's own page
/api/v1/sites/{site}/nightly - GETWhat a site's report by email is set to
/api/v1/sites/{site}/reports - PUTPut site
/api/v1/sites/{site}/reports
Sharing
- GETA site's shared figures
/api/v1/share/{site} - GETA page's view count, for a site that chose to show it
/api/v1/share/{site}/count - POSTPost unlock
/api/v1/share/{site}/unlock - GETWhat a site shares with people who are not members, and how
/api/v1/sites/{site}/share - PUTChange what a site shares
/api/v1/sites/{site}/share - POSTPost link
/api/v1/sites/{site}/share/links - DELETEDelete link
/api/v1/sites/{site}/share/links/{id}
The workspace
- GETWhat the account is
/api/v1/account - PATCHCall the account something else (doc/launch.md, 2.4)
/api/v1/account - POSTAsk for the account to be deleted, a week from now
/api/v1/account/deletion - DELETEStop a deletion that was asked for
/api/v1/account/deletion - GETEverything the account has, as one .zip
/api/v1/account/export - POSTMake another account, yours to own
/api/v1/accounts - GETWhat members did in the account, newest first
/api/v1/audit - GETPlan and billing
/api/v1/billing - POSTSay who the account buys as
/api/v1/billing/buyer - POSTCancel the plan
/api/v1/billing/cancel - DELETEDelete cancel
/api/v1/billing/cancel - POSTStart paying for a plan
/api/v1/billing/checkout - PUTPut details
/api/v1/billing/details - POSTPost dpa
/api/v1/billing/dpa - POSTA payment provider's own events, each checked by its signature
/api/v1/billing/events/{provider} - POSTPost plan
/api/v1/billing/plan - POSTThe provider's page for the card and the invoices
/api/v1/billing/portal - POSTFor a payment provider's relay
/api/v1/billing/provider - POSTA consumer withdraws from the agreement
/api/v1/billing/withdraw - GETThe plans this tidekeeper offers
/api/v1/plans - GETThe team
/api/v1/team - POSTPost invitation
/api/v1/team/invitations - DELETEDelete invitation
/api/v1/team/invitations/{id} - POSTResend invitation
/api/v1/team/invitations/{id}/resend - PUTPut member
/api/v1/team/members/{id} - DELETEDelete member
/api/v1/team/members/{id} - POSTPost owner
/api/v1/team/owner - PUTPut required
/api/v1/team/second-step - GETYour API tokens
/api/v1/tokens - POSTMake a token
/api/v1/tokens - GETGet token about
/api/v1/tokens/about - DELETERevoke a token
/api/v1/tokens/{id}
Signing in, and you
- POSTThe new address shown to be theirs
/api/v1/auth/email/confirm - GETWhat an invitation is to
/api/v1/auth/invitation - POSTAccept an invitation: the member is made and signed in
/api/v1/auth/invitation - POSTPost link
/api/v1/auth/link - POSTEmail and password sign-in
/api/v1/auth/login - POSTLogout
/api/v1/auth/logout - GETGet reset
/api/v1/auth/reset - POSTEmail a link to choose a new password
/api/v1/auth/reset - POSTPost reset finish
/api/v1/auth/reset/finish - GETWhat the second step's page shows
/api/v1/auth/second - POSTPost second
/api/v1/auth/second - POSTWhat the sign-up page asked before there was one way in
/api/v1/auth/signup - POSTContinue (A): a code by email
/api/v1/auth/start - POSTThe code
/api/v1/auth/start/use - GETWhom the first step is for, for its page
/api/v1/auth/starting - GETGet ways
/api/v1/auth/ways - GETWho you are
/api/v1/me - PATCHChange the name you are shown by
/api/v1/me - POSTAct in another of your accounts
/api/v1/me/account - POSTA new address to sign in with (doc/launch.md
/api/v1/me/email - POSTPost password
/api/v1/me/password - GETThe account's devices for push
/api/v1/me/push - POSTAdd the browser this is asked from as a device
/api/v1/me/push - DELETERemove a device
/api/v1/me/push/{id} - POSTTurn the second step on
/api/v1/me/second-step - POSTTurn it off, with six digits to show it is still theirs
/api/v1/me/second-step/off - POSTPost second start
/api/v1/me/second-step/start - GETGet security
/api/v1/me/security - GETGet setup
/api/v1/me/setup - PUTFold, open or hide the card; shown again from Settings
/api/v1/me/setup - POST"Remind me later"
/api/v1/me/snooze - DELETEBe reminded again from now
/api/v1/me/snooze/{what} - DELETERemove (D2): only while another way in remains afterwards
/api/v1/me/social/{id} - POSTConnect (D2)
/api/v1/me/social/{id}/connect - GETWhere you are signed in: each session, and when it was last used
/api/v1/sessions - DELETESign out everywhere else
/api/v1/sessions - DELETESign out one session
/api/v1/sessions/{id}
For whoever runs tidekeeper
- GETEvery account, searched, filtered and sorted
/api/v1/admin/accounts - GETOne account: what it is, and everything that was done to it
/api/v1/admin/accounts/{id} - POSTStop the account's plan from renewing
/api/v1/admin/accounts/{id}/cancel - POSTSet the day the account is deleted, a week or more ahead
/api/v1/admin/accounts/{id}/deletion - POSTStop a deletion
/api/v1/admin/accounts/{id}/deletion/stop - POSTSet limits of the account's own, in place of its plan's
/api/v1/admin/accounts/{id}/limits - POSTBack to the plan's limits
/api/v1/admin/accounts/{id}/limits/clear - POSTWrite a note about the account, for the other operators
/api/v1/admin/accounts/{id}/notes - POSTPut the account on a plan
/api/v1/admin/accounts/{id}/plan - POSTHave a mail about the plan sent again
/api/v1/admin/accounts/{id}/resend - POSTCount for the account again
/api/v1/admin/accounts/{id}/resume - POSTStop counting for the account
/api/v1/admin/accounts/{id}/suspend - POSTExtend the account's trial
/api/v1/admin/accounts/{id}/trial - POSTWithdraw a consumer's account from the agreement
/api/v1/admin/accounts/{id}/withdraw - GETEvery invite code
/api/v1/admin/invites - POSTMake an invite code
/api/v1/admin/invites - DELETEWithdraw a code not yet used
/api/v1/admin/invites/{id} - GETWhat operators did, newest first
/api/v1/admin/log - GETWho signed up, what needs someone, and what comes in
/api/v1/admin/overview - POSTOne mail to every owner of every account
/api/v1/admin/tell-owners - GETWhat this instance runs with
/api/v1/instance - GETThe nightly check, as it last ran on this tidekeeper
/api/v1/nightly - POSTRun the check now
/api/v1/nightly