# SignalSitter > Heartbeat monitoring and deterministic numeric rules for automations and background jobs. - [SignalSitter documentation](https://docs.signalsitter.com/): Know when your scheduled jobs and services go quiet or cross a limit, and fix them before your customers notice. - [Publish your first heartbeat](https://docs.signalsitter.com/guides/quickstart): Create a monitor, send one request, and see it arrive. - [Agents](https://docs.signalsitter.com/guides/agents): Let a coding agent integrate and run SignalSitter through the REST API or MCP. - [Plans and limits](https://docs.signalsitter.com/guides/plans): What each plan includes, and what happens when you change or end one. - [Publishing heartbeats](https://docs.signalsitter.com/guides/publish): Send beats and measurements, and configure cadence and limits with headers. - [REST API](https://docs.signalsitter.com/guides/rest): Authenticate and manage monitors, incidents and alerts from code. - [MCP](https://docs.signalsitter.com/guides/mcp): Connect an MCP client with a scoped credential and see what agents can do. - [Get started in the dashboard](https://docs.signalsitter.com/dashboard/get-started): Sign in, set up your organization and project, and create your first monitor. - [Monitors](https://docs.signalsitter.com/dashboard/monitors): Read a monitor's status and history, change its settings, and pause or remove it. - [Rules](https://docs.signalsitter.com/dashboard/rules): Set numeric limits on a monitor and check them against its history first. - [Incidents](https://docs.signalsitter.com/dashboard/incidents): Acknowledge, annotate and resolve incidents, and check their alerts. - [Alerts and notifications](https://docs.signalsitter.com/dashboard/alerts): Choose where alerts go: webhooks, WhooshBang, and your own phone. - [Credentials](https://docs.signalsitter.com/dashboard/credentials): Create, rotate and revoke credentials for scripts and agents. - [Plan, usage and billing](https://docs.signalsitter.com/dashboard/billing): See your usage, upgrade, manage billing, or cancel. - [Settings](https://docs.signalsitter.com/dashboard/settings): Organization settings, data export and deletion. - [API reference](https://docs.signalsitter.com/reference/api): Request and response contracts generated from SignalSitter OpenAPI. - [Publish heartbeat](https://docs.signalsitter.com/reference/api/publishheartbeat): POST /{monitor_key} — Durably accept one heartbeat observation - [Test a beat](https://docs.signalsitter.com/reference/api/testmonitorbeat): POST /v1/monitors/{monitorId}/test-beat — Validate a test beat without creating a production event - [List monitors](https://docs.signalsitter.com/reference/api/listmonitors): GET /v1/monitors — List the organization's monitors from the directory with live status fields - [Create monitor](https://docs.signalsitter.com/reference/api/createmonitor): POST /v1/monitors — Create and configure a monitor ready for its first live beat - [Get monitor](https://docs.signalsitter.com/reference/api/getmonitordetail): GET /v1/monitors/{monitorId} — Read one authoritative monitor and its latest observation - [Update configuration](https://docs.signalsitter.com/reference/api/updatemonitorconfiguration): PATCH /v1/monitors/{monitorId} — Update monitor cadence, grace, measurement definitions, and incident policy - [Change lifecycle](https://docs.signalsitter.com/reference/api/controlmonitorlifecycle): POST /v1/monitors/{monitorId}/lifecycle — Pause, resume, archive, restore, or schedule monitor maintenance - [Wait for first beat](https://docs.signalsitter.com/reference/api/getmonitoractivation): GET /v1/monitors/{monitorId}/activation — Wait for the first accepted live beat and its next deadline - [List changes](https://docs.signalsitter.com/reference/api/listmonitorchanges): GET /v1/monitors/{monitorId}/changes — List monitor configuration and lifecycle changes newest first by configuration version - [Delete monitor](https://docs.signalsitter.com/reference/api/deletemonitor): DELETE /v1/monitors/{monitorId} — Irreversibly delete a monitor and permanently consume its key - [List observations](https://docs.signalsitter.com/reference/api/listmonitorobservations): GET /v1/monitors/{monitorId}/observations — List accepted monitor observations newest first using an opaque cursor - [Read series](https://docs.signalsitter.com/reference/api/readmonitorobservationseries): GET /v1/monitors/{monitorId}/observation-series — Read a bounded time-bucketed numerical observation series - [Create draft](https://docs.signalsitter.com/reference/api/createmonitorruleworkbenchdraft): POST /v1/monitors/{monitorId}/rule-workbench/drafts — Create a versioned rule draft over one frozen retained-history window - [Read draft](https://docs.signalsitter.com/reference/api/getmonitorruleworkbenchdraft): POST /v1/monitors/{monitorId}/rule-workbench/drafts/read — Read a versioned rule workbench draft - [Update draft](https://docs.signalsitter.com/reference/api/updatemonitorruleworkbenchdraft): POST /v1/monitors/{monitorId}/rule-workbench/drafts/update — Update a rule proposal only when the draft version still matches - [Replay draft](https://docs.signalsitter.com/reference/api/replaymonitorruleworkbench): POST /v1/monitors/{monitorId}/rule-workbench/drafts/replay — Replay active and proposed rules over the draft's frozen retained history - [Apply draft](https://docs.signalsitter.com/reference/api/applymonitorruleworkbenchdraft): POST /v1/monitors/{monitorId}/rule-workbench/drafts/apply — Explicitly confirm and apply a draft when both draft and configuration versions match - [Cancel draft](https://docs.signalsitter.com/reference/api/cancelmonitorruleworkbenchdraft): POST /v1/monitors/{monitorId}/rule-workbench/drafts/cancel — Cancel an open rule draft without changing monitor configuration - [List all incidents](https://docs.signalsitter.com/reference/api/listincidents): GET /v1/incidents — List the organization's incidents newest first across every monitor - [List monitor incidents](https://docs.signalsitter.com/reference/api/listmonitorincidents): GET /v1/monitors/{monitorId}/incidents — List monitor incidents newest first using an opaque cursor - [Get incident](https://docs.signalsitter.com/reference/api/getmonitorincident): GET /v1/monitors/{monitorId}/incidents/{incidentId} — Read one incident and its current state-machine position - [Get timeline](https://docs.signalsitter.com/reference/api/getmonitorincidenttimeline): GET /v1/monitors/{monitorId}/incidents/{incidentId}/timeline — Read the immutable incident timeline in occurrence order - [Acknowledge incident](https://docs.signalsitter.com/reference/api/acknowledgemonitorincident): POST /v1/monitors/{monitorId}/incidents/{incidentId}/acknowledge — Acknowledge an incident without closing it - [Annotate incident](https://docs.signalsitter.com/reference/api/annotatemonitorincident): POST /v1/monitors/{monitorId}/incidents/{incidentId}/annotations — Append an immutable operator annotation to an incident - [Resolve incident](https://docs.signalsitter.com/reference/api/resolvemonitorincident): POST /v1/monitors/{monitorId}/incidents/{incidentId}/resolve — Resolve an incident and close its violation family - [List deliveries](https://docs.signalsitter.com/reference/api/listmonitorincidentdeliveries): GET /v1/monitors/{monitorId}/incidents/{incidentId}/deliveries — Read every callback delivery owed for one incident, with its attempt history - [Redeliver](https://docs.signalsitter.com/reference/api/redelivermonitorincidentdelivery): POST /v1/monitors/{monitorId}/incidents/{incidentId}/deliveries/{intentId}/redeliver — Ask for one more delivery attempt against a settled delivery - [List endpoints](https://docs.signalsitter.com/reference/api/listcallbackendpoints): GET /v1/callbacks — List reusable organization callback endpoints - [Create endpoint](https://docs.signalsitter.com/reference/api/createcallbackendpoint): POST /v1/callbacks — Create a webhook, WhooshBang subscriber, or WhooshBang group callback endpoint, revealing a webhook signing secret exactly once - [Get endpoint](https://docs.signalsitter.com/reference/api/getcallbackendpoint): GET /v1/callbacks/{endpointId} — Read one callback endpoint - [Update endpoint](https://docs.signalsitter.com/reference/api/updatecallbackendpoint): PATCH /v1/callbacks/{endpointId} — Update a callback endpoint's alias, destination, or lifecycle; setting lifecycle switches deliveries off and back on - [Rotate signing secret](https://docs.signalsitter.com/reference/api/rotatecallbackendpointsecret): POST /v1/callbacks/{endpointId}/rotate — Rotate the signing secret with a bounded overlap and reveal it once - [Send test delivery](https://docs.signalsitter.com/reference/api/testcallbackendpoint): POST /v1/callbacks/{endpointId}/test — Send one signed test delivery and report what the destination answered; the result gates nothing - [Remove endpoint](https://docs.signalsitter.com/reference/api/removecallbackendpoint): DELETE /v1/callbacks/{endpointId} — Permanently remove a callback endpoint, its signing secret, and its idempotency history; to stop deliveries reversibly, PATCH lifecycle to disabled instead - [Get monitor binding](https://docs.signalsitter.com/reference/api/getmonitorcallbackbinding): GET /v1/monitors/{monitorId}/callback — Read a monitor's callback binding and what it resolves to - [Set monitor binding](https://docs.signalsitter.com/reference/api/setmonitorcallbackbinding): PUT /v1/monitors/{monitorId}/callback — Bind a monitor to the default, a named endpoint, an inline URL, or nothing - [Get default endpoint](https://docs.signalsitter.com/reference/api/getorganizationcallbackdefault): GET /v1/organization/callback-default — Read the endpoint monitors inherit when they select the default - [Set default endpoint](https://docs.signalsitter.com/reference/api/setorganizationcallbackdefault): PUT /v1/organization/callback-default — Select or clear the organization default callback endpoint - [List projects](https://docs.signalsitter.com/reference/api/listprojects): GET /v1/projects — List the organization's projects - [Create project](https://docs.signalsitter.com/reference/api/createproject): POST /v1/projects — Create a project - [Get project](https://docs.signalsitter.com/reference/api/getproject): GET /v1/projects/{projectId} — Read one project - [Rename project](https://docs.signalsitter.com/reference/api/renameproject): PATCH /v1/projects/{projectId} — Rename a project without changing its identifier - [Archive or restore](https://docs.signalsitter.com/reference/api/controlprojectlifecycle): POST /v1/projects/{projectId}/lifecycle — Archive or restore one project - [Delete project](https://docs.signalsitter.com/reference/api/deleteproject): DELETE /v1/projects/{projectId} — Reserve irreversible erasure of one project - [List credentials](https://docs.signalsitter.com/reference/api/listapicredentials): GET /v1/credentials — List API credential metadata - [Create credential](https://docs.signalsitter.com/reference/api/createapicredential): POST /v1/credentials — Create an API credential and reveal its secret once - [Get credential](https://docs.signalsitter.com/reference/api/getapicredential): GET /v1/credentials/{credentialId} — Read API credential metadata - [Rotate credential](https://docs.signalsitter.com/reference/api/rotateapicredential): POST /v1/credentials/{credentialId}/rotate — Rotate an API credential and reveal the replacement secret once - [Revoke credential](https://docs.signalsitter.com/reference/api/revokeapicredential): DELETE /v1/credentials/{credentialId} — Revoke an API credential - [Get organization](https://docs.signalsitter.com/reference/api/getorganizationcontext): GET /v1/organization — Read the verified organization and principal context - [Get entitlements](https://docs.signalsitter.com/reference/api/getorganizationentitlements): GET /v1/organization/entitlements — Read the organization's plan, entitlements, usage, and lease freshness - [Get usage](https://docs.signalsitter.com/reference/api/getorganizationusage): GET /v1/organization/usage — Read bounded organization usage, projection freshness, and entitlement alignment - [Get default jurisdiction](https://docs.signalsitter.com/reference/api/getorganizationdefaultjurisdiction): GET /v1/organization/default-jurisdiction — Read where monitors are created when the request names no jurisdiction - [Set default jurisdiction](https://docs.signalsitter.com/reference/api/setorganizationdefaultjurisdiction): PUT /v1/organization/default-jurisdiction — Choose where future monitors are created; existing monitors never move - [Export data](https://docs.signalsitter.com/reference/api/exportorganization): GET /v1/organization/export — Stream the organization's monitors, observations, incidents, and usage without secrets - [Get billing status](https://docs.signalsitter.com/reference/api/getorganizationbilling): GET /v1/organization/billing — Read the organization's subscription status, dispute state, and grace boundary - [Preview cancellation](https://docs.signalsitter.com/reference/api/getbillingcancellationimpact): GET /v1/organization/billing/cancellation-impact — Read what ending the subscription would do to each existing monitor - [List allotment transitions](https://docs.signalsitter.com/reference/api/listbillingallotmenttransitions): GET /v1/organization/billing/allotment-transitions — List monitor suspensions and releases caused by applied plan transitions - [Get OpenAPI document](https://docs.signalsitter.com/reference/api/getopenapidocument): GET /v1/openapi.json — Read the generated SignalSitter V1 OpenAPI document - [Error codes](https://docs.signalsitter.com/problems): Every error code the SignalSitter API returns, what it means and what to do. - [signalsitter.invalid_request](https://docs.signalsitter.com/problems/invalid_request): Request not available. The request is well-formed but asks for something that isn't on offer, such as checking out a plan that can't be bought. - [signalsitter.validation_failed](https://docs.signalsitter.com/problems/validation_failed): Request validation failed. The request doesn't match the API's schema. A field is missing, has the wrong type, or is out of range. Over MCP, the tool input is invalid. - [signalsitter.authentication_required](https://docs.signalsitter.com/problems/authentication_required): Authentication required. The request has no usable credential. The Authorization header is missing, malformed, or holds a token SignalSitter doesn't recognise. - [signalsitter.permission_denied](https://docs.signalsitter.com/problems/permission_denied): Permission denied. The credential is valid but can't do this. Its preset doesn't allow the operation, or your plan or account state doesn't include it. - [signalsitter.not_found](https://docs.signalsitter.com/problems/not_found): Resource not found. Nothing with that ID exists in your organization and project. Another organization's resources return this too. - [signalsitter.conflict](https://docs.signalsitter.com/problems/conflict): Conflicting request. The change clashes with the resource's current state, such as a transition it can't make from where it is. It's also returned when a monitor ID exists in more than one jurisdiction. - [signalsitter.precondition_failed](https://docs.signalsitter.com/problems/precondition_failed): Precondition failed. The version you sent no longer matches the resource, because it changed since you read it. For a callback endpoint, it can also mean the operation doesn't apply to that kind of endpoint; the detail says which. - [signalsitter.idempotency_conflict](https://docs.signalsitter.com/problems/idempotency_conflict): Idempotency key reused. This Idempotency-Key was already used for a different request. - [signalsitter.rate_limited](https://docs.signalsitter.com/problems/rate_limited): Too many requests. The request went over a limit. It's either a short-term rate, such as requests per minute or beats faster than the cadence allows, or a plan limit such as active monitors. - [signalsitter.temporarily_unavailable](https://docs.signalsitter.com/problems/temporarily_unavailable): Temporarily unavailable. Something on our side is briefly unavailable. Your request isn't the problem. - [signalsitter.internal_error](https://docs.signalsitter.com/problems/internal_error): Internal error. Something went wrong inside SignalSitter, not in your request. - [signalsitter.invalid_credential](https://docs.signalsitter.com/problems/invalid_credential): Credential no longer valid. SignalSitter recognised the credential, but it no longer works. It was revoked, rotated, or has expired. - [signalsitter.confirmation_required](https://docs.signalsitter.com/problems/confirmation_required): Confirmation required. This MCP tool changes or removes something, so it needs explicit confirmation. Nothing changed. - [signalsitter.precondition_required](https://docs.signalsitter.com/problems/precondition_required): Precondition required. This change needs an If-Match header, so it can't overwrite something you haven't seen. - [signalsitter.payload_too_large](https://docs.signalsitter.com/problems/payload_too_large): Payload too large. The request body is over the size limit. REST and publish bodies can be up to 16 KiB. - [signalsitter.unsupported_media_type](https://docs.signalsitter.com/problems/unsupported_media_type): Unsupported media type. The request has a body that isn't declared as JSON. - [signalsitter.callback_destination_rejected](https://docs.signalsitter.com/problems/callback_destination_rejected): Callback destination rejected. Callback URLs must use HTTPS and point at a public host. This one isn't HTTPS, or its host is private or local. - [signalsitter.callback_alias_conflict](https://docs.signalsitter.com/problems/callback_alias_conflict): Callback alias in use. Another callback endpoint in your organization already uses that alias. - [signalsitter.callback_limit_reached](https://docs.signalsitter.com/problems/callback_limit_reached): Callback endpoint limit reached. Your organization already has as many callback endpoints as your plan allows. - [signalsitter.monitor_archived](https://docs.signalsitter.com/problems/monitor_archived): Monitor archived. The monitor is archived, so it doesn't accept beats. - [signalsitter.monitor_deleted](https://docs.signalsitter.com/problems/monitor_deleted): Monitor deleted. The monitor was deleted. Deleted monitors can't come back, and their IDs can't be reused. - [signalsitter.organization_deleted](https://docs.signalsitter.com/problems/organization_deleted): Organization deleted. The organization this credential belongs to was deleted. Its monitors and credentials no longer work. [OpenAPI](https://docs.signalsitter.com/openapi.json)