# tickward > Open-source countdown timers with account sync, static sharing, and a versioned API. ## Docs - [CODE OF CONDUCT](https://tickward.com/docs/CODE_OF_CONDUCT.md) - [DEPENDENCY LICENSES](https://tickward.com/docs/DEPENDENCY_LICENSES.md) - [SECURITY](https://tickward.com/docs/SECURITY.md) - [API Reference](https://tickward.com/docs/api-reference.md): Use tickward's versioned API to manage projects, timers, spaces, share links, and webhooks. - [Get API capabilities](https://tickward.com/docs/api-reference/capabilities/get-api-capabilities.md): Return machine-readable API features and limits. This endpoint does not require an API key and is safe for agents and self-hosted deployments to call before choosing a workflow. - [Create a project](https://tickward.com/docs/api-reference/projects/create-a-project.md): Create a project owned by the API key user. The body can include spaces and timers for one atomic project setup. Agents should call POST /projects/preview first for multi-resource creates, then send expected_plan_hash with the create request. - [Delete a project](https://tickward.com/docs/api-reference/projects/delete-a-project.md): Delete a project and its related timers, spaces, share links, access tokens, and notification records. Use `dry_run=true` first to preview the cascade without mutating data. Agents must ask for explicit user confirmation before applying the delete. - [List projects](https://tickward.com/docs/api-reference/projects/list-projects.md): List projects owned by the API key user. Use this first when an agent needs to resolve which project the user means. Supports cursor pagination with `after`, `before`, and `limit`. - [Preview project creation](https://tickward.com/docs/api-reference/projects/preview-project-creation.md): Validate a project creation payload and return the projects, spaces, and timers that would be created. This endpoint does not mutate data and does not record idempotency. - [Retrieve a project](https://tickward.com/docs/api-reference/projects/retrieve-a-project.md): Retrieve project metadata and counts. Use timers and spaces endpoints to inspect project contents. - [Update a project](https://tickward.com/docs/api-reference/projects/update-a-project.md): Rename or recolor a project. Requires a full-access key. - [Create or reuse a shared timer link](https://tickward.com/docs/api-reference/shares/create-or-reuse-a-shared-timer-link.md): Create or return the stable public link for a timer. Requires a full-access key. This operation is idempotent for the same user and timer. - [Delete a shared timer link](https://tickward.com/docs/api-reference/shares/delete-a-shared-timer-link.md): Delete a public timer link and clear the timer shared state. Requires a full-access key. - [Get a shared timer link](https://tickward.com/docs/api-reference/shares/get-a-shared-timer-link.md): Retrieve one public timer link by share id. - [List shared timer links](https://tickward.com/docs/api-reference/shares/list-shared-timer-links.md): Returns the public share links that have been created for timers in this project. - [Create a space](https://tickward.com/docs/api-reference/spaces/create-a-space.md): Create a space in a project. Requires a full-access key. Create spaces before assigning timers to them. - [Delete a space](https://tickward.com/docs/api-reference/spaces/delete-a-space.md): Delete a space and unassign its timers from that space. Use `dry_run=true` first to preview affected timers without mutating data. Timers are not deleted. - [List spaces](https://tickward.com/docs/api-reference/spaces/list-spaces.md): List spaces in a project. Spaces are lightweight categories for organizing timers. - [Retrieve a space](https://tickward.com/docs/api-reference/spaces/retrieve-a-space.md): Retrieve one space by id. - [Update a space](https://tickward.com/docs/api-reference/spaces/update-a-space.md): Rename or recolor a space. Requires a full-access key. - [Create a timer](https://tickward.com/docs/api-reference/timers/create-a-timer.md): Create a timer in a project. Requires a full-access key. Provide a clear `label`, an ISO 8601 `target_date`, and an IANA `timezone`; create the space first before sending `space_id`. - [Delete a timer](https://tickward.com/docs/api-reference/timers/delete-a-timer.md): Delete a timer and related share and notification records. Requires a full-access key. Agents must ask for explicit user confirmation before calling this endpoint. - [List timers](https://tickward.com/docs/api-reference/timers/list-timers.md): List all timers in a project. Use this to answer questions about deadlines, archived timers, notification state, and shared timers. For recurring timers, use effective_target_date as the current countdown date and target_date as the original schedule anchor. - [Retrieve a timer](https://tickward.com/docs/api-reference/timers/retrieve-a-timer.md): Retrieve one timer by id. - [Update a timer](https://tickward.com/docs/api-reference/timers/update-a-timer.md): Update a timer, including label, target date, timezone, archived state, notification settings, recurrence, pinning, image, or space assignment. Requires a full-access key. - [Create webhook endpoint](https://tickward.com/docs/api-reference/webhooks/create-webhook-endpoint.md): Create a webhook endpoint. The signing secret is returned only once. - [List webhook deliveries](https://tickward.com/docs/api-reference/webhooks/list-webhook-deliveries.md): List recent delivery attempts for a webhook endpoint. - [List webhook endpoints](https://tickward.com/docs/api-reference/webhooks/list-webhook-endpoints.md): List webhook endpoints for the authenticated account. - [Remove webhook endpoint](https://tickward.com/docs/api-reference/webhooks/remove-webhook-endpoint.md): Remove a webhook endpoint and its delivery history. Use PATCH status=disabled to pause without deleting history. - [Retrieve webhook endpoint](https://tickward.com/docs/api-reference/webhooks/retrieve-webhook-endpoint.md) - [Send test webhook](https://tickward.com/docs/api-reference/webhooks/send-test-webhook.md): Send one sample delivery to a webhook endpoint. This endpoint is rate-limited per user and webhook. - [Update webhook endpoint](https://tickward.com/docs/api-reference/webhooks/update-webhook-endpoint.md): Update the name, status, or subscribed event types. URL changes should use a new endpoint. - [Countdown Accuracy](https://tickward.com/docs/concepts/countdown-accuracy.md): How tickward computes remaining time, which browser APIs it relies on, and where to check their support. - [Agent Usage](https://tickward.com/docs/guides/agent-usage.md): How AI agents should use the tickward API safely and predictably. - [API Quickstart](https://tickward.com/docs/guides/api-quickstart.md): Create an API key and call tickward's versioned API. - [Embedding timers](https://tickward.com/docs/guides/embedding-timers.md): Show a live countdown on any website with an iframe snippet or render it natively from the JSON state endpoint. - [MCP setup](https://tickward.com/docs/guides/mcp.md): Connect tickward to ChatGPT, Claude, local agents, or a self-hosted MCP Worker. - [Create project with timers](https://tickward.com/docs/guides/recipes/create-project-with-timers.md): Preview and create a project with spaces and timers in one flow. - [Preview and delete project](https://tickward.com/docs/guides/recipes/preview-and-delete-project.md): Preview destructive deletes before applying them. - [Retry-safe mutation](https://tickward.com/docs/guides/recipes/retry-safe-mutation.md): Use Idempotency-Key so agents can retry writes without creating duplicates. - [Self-hosting](https://tickward.com/docs/guides/self-hosting.md): Run tickward locally or deploy it with PostgreSQL, Redis rate limiting, accounts, email, and Web Push. - [Webhooks and scheduler](https://tickward.com/docs/guides/webhooks.md): Send timer, project, and share events to your own endpoints, Make, Zapier, n8n, or another automation service. - [tickward docs](https://tickward.com/docs/index.md): Open-source countdown timers with account sync, static sharing, and a versioned API. ## OpenAPI Specs - [openapi](https://tickward.com/docs/openapi.json)