1. Project Overview & Quickstart (cachethq/LICENSE)
LICENSE
Open-source repository cachethq/LICENSE
Repository Details
- Repository: cachethq/LICENSE
- Primary Language: Code
Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.
2. Official Technical Reference & Guides (cachethq/docs)
File: README.md
Cachet documentation
Cachet is an open source status page system. Use it to keep your customers and stakeholders informed about downtime and system outages.
This repository contains the source code for the Cachet documentation, built with Mintlify.
Running locally
Mintlify hosts the documentation. To run it locally:
- Clone the repository:bash
git clone [email protected]:cachethq/docs.git cachet-docs - Install Mintlify:bash
npm install -g mintlify@latest - Run the documentation:bash
cd cachet-docs mintlify dev
Contributing
Read the Mintlify guide for documentation syntax and local preview instructions.
File: credits.mdx
title: Credits icon: 'heart'
Thanks
Thank you to the projects and people who make Cachet possible:
- Laravel
- Tailwind
- Filament
- Special thanks to Dan Harrin
- Testbench
- Special thanks to Mior Muhammad Zaki
- Alpine.js
- Special thanks to Jason Beggs
- Jump24
- de:doc
- Special thanks to Roman Lytvynenko
- Mintlify
- Scribe
- Spatie
- FluxUI
- In particular, Caleb Porzio for his work on Flux's themes system
Contributors
Thank you to everyone who contributes to Cachet:
</a>
</Accordion>
<Accordion title="CachetHQ/Core" icon="github" defaultOpen={true}>
<a href="https://github.com/cachethq/core/graphs/contributors">
</a>
</Accordion>File: docs.json
{
"$schema": "https://mintlify.com/docs.json",
"theme": "mint",
"name": "Cachet",
"colors": {
"primary": "#04C147",
"light": "#04C147",
"dark": "#04C147"
},
"favicon": "/favicon.png",
"navigation": {
"versions": [
{
"version": "v3.x",
"anchors": [
{
"anchor": "Documentation",
"icon": "book-open",
"groups": [
{
"group": "Getting Started",
"pages": [
"v3.x/introduction",
"v3.x/installation",
"v3.x/demo",
"v3.x/development",
"v3.x/migration-guide",
"v3.x/changelog"
]
},
{
"group": "Guide",
"pages": [
"v3.x/guide/incidents",
"v3.x/guide/components",
"v3.x/guide/schedules",
"v3.x/guide/metrics",
"v3.x/guide/subscribers",
"v3.x/guide/webhooks",
"v3.x/guide/mcp",
"v3.x/guide/users",
"v3.x/guide/dashboard",
"v3.x/guide/status-badges"
]
},
{
"group": "Configuration",
"pages": [
"v3.x/configuration/cachet",
"v3.x/configuration/environment",
"v3.x/configuration/customization",
"v3.x/configuration/theme",
"v3.x/configuration/theme-hooks",
"v3.x/configuration/beacon",
"v3.x/configuration/api-keys"
]
},
{
"group": "Integrations",
"pages": [
"v3.x/integrations/oh-dear"
]
},
{
"group": "Other",
"pages": [
"credits",
"trademarks"
]
}
]
},
{
"anchor": "Blog",
"href": "https://blog.cachethq.io",
"icon": "newspaper"
},
{
"anchor": "Sponsor Cachet",
"href": "https://cachethq.io/sponsor",
"icon": "heart"
},
{
"anchor": "API Reference",
"openapi": {
"source": "/api-reference/openapi.json",
"directory": "api-reference"
},
"icon": "square-terminal",
"groups": [
{
"group": "API Documentation",
"pages": [
"api-reference/introduction",
"api-reference/authentication",
"api-reference/pagination",
"api-reference/filtering",
"api-reference/rate-limiting"
]
}
]
}
]
},
{
"version": "v2.x",
"anchors": [
{
"anchor": "Documentation",
"icon": "book-open",
"groups": [
{
"group": "Get Started",
"pages": [
"v2.x/introduction",
"v2.x/component-statuses",
"v2.x/incident-statuses",
"v2.x/client-libraries",
"v2.x/faq"
]
},
{
"group": "Installation",
"pages": [
"v2.x/installation/guide",
"v2.x/installation/docker",
"v2.x/installation/windows",
"v2.x/installation/upgrading",
"v2.x/installation/beacons"
]
},
{
"group": "Configuration",
"pages": [
"v2.x/configuration/prerequisites",
"v2.x/configuration/github-oauth-token",
"v2.x/configuration/cors",
"v2.x/configuration/mail",
"v2.x/configuration/queue",
"v2.x/configuration/subscribers"
]
},
{
"group": "Other",
"pages": [
"credits",
"trademarks"
]
}
]
},
{
"anchor": "Blog",
"href": "https://blog.cachethq.io",
"icon": "newspaper"
},
{
"anchor": "API Reference",
"openapi": {
"source": "/api-reference/openapi.json",
"directory": "api-reference"
},
"icon": "square-terminal"
}
]
}
]
},
"logo": {
"light": "/logo/light.svg",
"dark": "/logo/dark.svg",
"href": "https://cachethq.io"
},
"api": {
"mdx": {
"server": "https://v3.cachethq.io/api"
}
},
"background": {
"decoration": "grid"
},
"navbar": {
"primary": {
"type": "button",
"label": "Demo",
"href": "https://v3.cachethq.io"
}
},
"footer": {
"socials": {
"x": "https://x.com/cachethq",
"github": "https://github.com/cachethq",
"linkedin": "https://linkedin.com/company/cachethq"
}
},
"integrations": {
"fathom": {
"siteId": "FDSKQOXU"
}
},
"fonts": {
"heading": {
"family": "Lexend"
}
},
"redirects": [
{
"source": "/v3.x/change-log",
"destination": "/v3.x/changelog"
},
{
"source": "/v3.x/credits",
"destination": "/credits"
},
{
"source": "/v3.x/trademarks",
"destination": "/trademarks"
}
],
"contextual": {
"options": [
"copy",
"chatgpt",
"claude",
"cursor",
"vscode"
]
}
}
File: trademarks.mdx
title: 'Trademarks' icon: 'trademark'
This policy explains how to use the Cachet trademarks, service marks, and logos.
While the copyright to our open source software is licensed under the Cachet license, our trademarks appearing in or on the open source software are the exclusive property of Cachet Inc. This means that our open source license does not include a license to use our trademarks.
Because we make some of our code available to download and modify, proper use of our trademarks is essential to inform people whether or not Cachet stands behind a product or service. When using Cachet trademarks, you must comply with these Cachet Trademark Guidelines.
This policy explains how to use our trademarks in a way that is consistent with background law and community expectations. This policy covers:
- Our word trademarks and service marks: Cachet
- Our logos: the Cachet logos
This policy encompasses all trademarks and service marks, whether they are registered or not.
General guidelines
Whenever you use one of our marks, you must always do so in a way that does not mislead anyone about what they are getting and from whom.
Do not use the Cachet marks in any way that could mistakenly imply that Cachet has reviewed, approved or guaranteed your goods or services. You also cannot use our logo on your website in a way that suggests that your website is an official website or that we endorse your website. You can, though, say you like the Cachet software, that you use Cachet, that your status page is powered by Cachet or that you participate in the Cachet community.
Do not use the "Cachet" prefix in a way that could mistakenly imply that your product is related to Cachet. For example, an analytics product that uses Cachet should not use the name "cachetanalytics."
You may not use or register our marks or variations of them as part of your trademark, business, product, service, app, domain name, social media account or business indicator. You may not use our marks as a part of an advertising campaign. You may not display Cachet trademarks more prominently than your product, service or company name. You may not use Cachet trademarks on merchandise for sale (e.g., selling t-shirts, mugs, etc).
Trademark law does not allow your use of names or trademarks that are too similar to ours. You therefore may not use an obvious variation of any of our marks or any phonetic equivalent, foreign language equivalent, takeoff, or abbreviation for a similar or compatible product or service.
Acceptable uses
You can use the Cachet name to truthfully and accurately refer to or identify Cachet and its products and services in the following instances:
- To refer to Cachet and its products and services in news articles and other content without alteration
- To discuss Cachet and its products in a fair and honest manner that does not suggest sponsorship or endorsement by or affiliation with Cachet
- To refer to or link to the products and services hosted on Cachetβs servers and website
- To indicate if your product, service or solution integrates, or is interoperable or compatible, with Cachet, for example, βwe offer a simple integration with Cachet,β provided that doing so does not create a likelihood of confusion as to the origin of such product, service, or solution
- To use our word marks as part of a public subdomain solely to serve as the URL for your self-managed Cachet instance, for example, cachet.companyname.com
Prohibited uses
Unless you have express written permission from Cachet, or your use is permitted by the uses listed in Acceptable uses, the use of Cachet trademarks is strictly prohibited. Here is a short, non-exhaustive list of the kinds of uses that are not permitted without Cachetβs express written permission but that Cachet may consider granting you the right to do should you request permission:
- Use of Cachet trademarks in connection with the provision of a public website that makes Cachet software available for installation and use on a server (rather than directing users to the official Cachet site)
- Use of Cachet trademarks in connection with versions of Cachet products made publicly available or made available in the cloud on a managed service provider, resale or other commercial basis
- Use of Cachet trademarks in connection with Cachet product bundled with other software
In the cases listed in Prohibited uses:
- You must follow the terms of the open source license for Cachet software products and code
- You must remove all of our logos from it and choose your branding, logos and trademarks that denote your unique identity to clearly signal to users that there is no affiliation with or endorsement by Cachet
- You must not use any Cachet trademark in connection with the user-facing name, branding or marketing materials of your project
- You may use word marks, but not our logos, in truthful statements that describe the relationship between your software and ours, for example, βthis software is derived from the source code of the Cachet software,β as long as you also include a statement that your project is not officially associated with Cachet or its products
Cachet reserves the right in its sole discretion to (i) terminate, revoke, modify, or otherwise change permission to use the trademarks at any time and; (ii) object to any use or misuse of the trademarks in any jurisdiction worldwide. All changes to these guidelines are effective immediately when posted and your continued use of the trademarks following the posting of revised guidelines signifies your acceptance of such revision.
To request the use of the trademarks
Anyone wishing to use any of Cachetβs trademarks in a manner other than the uses listed in Acceptable uses, including but not limited to marketing, promotion or advertising, or on software derivative of Cachet software, must obtain Cachetβs express, written permission in advance.
To request the use of the trademarks in a manner or for a purpose not expressly permitted in these guidelines, including use for any purpose of the logos, email [email protected]. You can also ask whether your use qualifies.
To report misuse
To report misuse of a Cachet trademark, email [email protected].
Last updated: July 7 2026
These guidelines are based on the Model Trademark Guidelines, available at http://www.modeltrademarkguidelines.org., used under a Creative Commons Attribution 3.0 Unported license: https://creativecommons.org/licenses/by/3.0/deed.en_US
File: api-reference/authentication.mdx
title: 'Authentication'
Most GET requests are public by default. If Require Authentication is enabled in
API settings, read requests also require an API key.
Subscriber endpoints always require authentication and the subscribers.manage ability for read requests.
Write requests require an API key with the matching resource ability.
API token
An API key is a bearer token sent in the Authorization header.
This example creates a component with an authenticated request:
curl https://v3.cachethq.io/api/components \
-H "Content-Type: application/json;" \
-H "Authorization: Bearer YOUR_KEY_HERE" \
-d '{
"name": "API",
"description": "An example description",
"status": 1
}'File: api-reference/filtering.mdx
title: 'Filtering and sorting'
Filtering
The filter parameter limits results to matching resources. This request filters incidents by status:
GET /api/incidents?filter[status]=1Including related resources
The include parameter embeds related resources in the response. Its value is a comma-separated list of relationships:
GET /api/incidents?include=components,updatesFiltering by metadata
For resources with metadata, filter[meta][key] filters by a metadata value:
GET /api/incidents?filter[meta][region]=us-east-1Sorting
The sort parameter accepts a comma-separated list of field names. Fields sort in ascending order by default:
GET /api/incidents?sort=idA hyphen before a field name selects descending order:
GET /api/incidents?sort=-idFile: api-reference/introduction.mdx
title: 'Introduction'
JSON API
The Cachet API reads and updates status page resources through HTTP requests. Responses use JSON.
Deleting resources
Resource deletion endpoints accept a resource ID:
DELETE /api/components/123Component groups, components, incidents, incident templates, metrics, and schedules also support atomic bulk deletion
with a comma-separated ids query parameter:
DELETE /api/components?ids=123,456All requested IDs must be valid and exist before Cachet deletes anything. An unqualified collection DELETE is rejected,
and ids=all is not supported. See the relevant endpoint reference for the required API-token ability.
Example response
The incident list endpoint returns resources, pagination links, and metadata:
{
"data": [
{
"id": "2",
"type": "incidents",
"attributes": {
"id": 2,
"guid": "3aad01a9-be10-422b-a90b-413c850cf89b",
"name": "Documentation Performance Degradation",
"message": "We're investigating an issue with our documentation causing the site to be slow.",
"component_id": null,
"visible": 1,
"stickied": false,
"notifications": 0,
"status": {
"human": "Investigating",
"value": 1
},
"occurred": {
"human": "34 minutes ago",
"string": "2024-10-27 08:31:59"
},
"created": {
"human": "34 minutes ago",
"string": "2024-10-27 08:31:59"
},
"updated": {
"human": "34 minutes ago",
"string": "2024-10-27 08:31:59"
}
}
},
{
"id": "1",
"type": "incidents",
"attributes": {
"id": 1,
"guid": "105d8c6d-9d21-4afd-a8d9-8c49f1fd1fbc",
"name": "DNS Provider Outage",
"message": "We're investigating an issue with our DNS provider causing the site to be offline.",
"component_id": null,
"visible": 1,
"stickied": false,
"notifications": 0,
"status": {
"human": "Fixed",
"value": 4
},
"occurred": {
"human": "1 day ago",
"string": "2024-10-26 09:01:59"
},
"created": {
"human": "1 day ago",
"string": "2024-10-26 09:01:59"
},
"updated": {
"human": "1 day ago",
"string": "2024-10-26 09:01:59"
}
}
}
],
"links": {
"first": "https://v3.cachethq.io/api/incidents?page=1"
},
"meta": {
"current_page": 1,
"from": 1,
"path": "https://v3.cachethq.io/api/incidents",
"per_page": 15,
"to": 2
}
}