Skip to main content
AppSignal’s GraphQL API supports mutations as well as queries. Where a query reads data, a mutation writes it: you can create a custom marker, close an incident, add an uptime monitor, and more. Mutations use the same endpoint and personal API token as queries. Read the GraphQL API page for details on the endpoint and authentication. Most mutations are app-scoped and take an appId argument that scopes the change to a single app. You can find your app ID in your app’s settings screen. Some mutations are organization-scoped and take an organizationSlug argument instead, such as createApp and createStatusPage. This page covers the most common mutations. For the complete, auto-generated list of every mutation and its arguments, see the GraphQL schema reference.
Mutations change data in your account. Test against a non-production app before you automate a mutation against production data.

Incidents

Update an incident

Change an incident’s state, severity, assignees, or notification settings. The number is the incident number shown in AppSignal. state accepts OPEN, WIP, or CLOSED. severity accepts UNTRIAGED, CRITICAL, HIGH, LOW, NONE, or INFORMATIONAL.

Bulk update incidents

Update several incidents in one request. Unlike updateIncident, this mutation takes incident IDs rather than incident numbers.

Create a note on an incident

Add a note to an incident’s logbook. The same fields are available on performance, anomaly, and log incidents.

Create an issue from an incident

Create a linked issue in a connected integration. This example uses GitHub; equivalent mutations exist for other integrations: createGitlabIssue, createJiraIssue, createLinearIssue, createShortcutStory, createAsanaTask, and createTrelloCard.

Remove an integration from an incident

Remove a previously linked integration issue from an incident.

Markers

Create or update a custom marker

Create a custom marker to annotate a point in time, such as a configuration change or a manual action. Pass an id to update an existing marker. Omit id to create a new marker.

Delete a custom marker

Delete a custom marker by ID.

Alerts and triggers

Create a trigger

Create a metric-based alert trigger. field accepts a value from MetricFieldEnum (such as MEAN, P90, P95, COUNT, GAUGE, or COUNTER). kind is a string describing the trigger type. The GraphQL source docs name ExceptionRate and Throughput as examples. The condition sets the threshold to compare against. To replace an existing trigger, pass its ID as previousTriggerId. comparisonOperator accepts LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN_OR_EQUAL, EQUAL, or NOT_EQUAL.

Archive a trigger

Archive a trigger so it no longer evaluates metrics or sends alerts.

Archive an alert

Archive a single triggered alert. This mutation returns true on success.

Close the last alert for an anomaly incident

Close the most recent open alert for an anomaly incident, identified by its incident number.

Uptime monitors

Create an uptime monitor

Create an uptime monitor from a UptimeMonitorInput. regions accepts one or more of EUROPE, NORTH_AMERICA, ASIA_PACIFIC, or SOUTH_AMERICA.

Update an uptime monitor

Update an existing monitor. The uptimeMonitor input takes the same shape as it does when creating one.

Delete an uptime monitor

Delete a monitor by ID. This mutation returns the deleted monitor.

Check-ins

Create a check-in trigger

Create a cron or heartbeat check-in trigger. kind accepts CRON or HEARTBEAT. For a cron trigger, set syntax to the cron expression. Use UTC for timezone where possible.

Update a check-in trigger

Update an existing check-in trigger. Only the fields you pass are changed.

Delete a check-in trigger

Delete a check-in trigger by ID.

Dashboards

Create a dashboard

Create an empty dashboard. Add visuals to it with the createVisualTimeseries and createVisualNumber mutations, or import a complete dashboard with importDashboard. Dashboard visuals are also managed through createVisualTimeseries, createVisualNumber, updateVisualTimeseries, updateVisualNumber, updateVisualLayouts, and deleteVisual. To create a standalone saved visual for later retrieval through the saved visuals REST endpoints, use createSavedVisual.

Update a dashboard

Update a dashboard’s title or description. The title is required.

Delete a dashboard

Delete a dashboard by ID.

Import a dashboard

Import a dashboard from a JSON definition. The json argument is a JSON-encoded string, so escape it when sending it as a variable.

Logs

Create a log trigger

Create a trigger that opens an incident when log lines match a query. severities accepts log severity names such as error, warn, or info.
Logs are also managed through GraphQL beyond triggers. Use createLogSource, updateLogSource, and deleteLogSource for sources; createLogView, updateLogView, and deleteLogView for saved views; createLogLineAction, updateLogLineAction, deleteLogLineAction, and reorderLogLineActions for ingestion rules; updateLogTrigger and deleteLogTrigger for log triggers; and createLogExport, updateLogExport, and deleteLogExport for S3 exports.

Organization-scoped mutations

Some mutations act on an organization rather than a single app, so they take an organizationSlug argument instead of appId. You can find the slug in the URL of your organization in AppSignal.

Create an app

Create a new app within an organization.

Create a status page

Create a public status page from a CreateStatusPageInput. title and hostname are required.
Status pages also support createStatusPageUpdate, updateStatusPage, updateStatusPageUpdate, deleteStatusPage, and deleteStatusPageUpdate. For CSV exports, use createCsvExport to start an export and createCsvExportUrl to generate a download URL for a completed export.

More mutations

These examples cover the most common operations. The API includes more, grouped in the schema reference under Core (app and hosted collector management), Dashboards (visuals and layouts), Logs (sources, views, and exports), Exports (CSV), Status pages (updates), and User preferences. For the full list of mutations and their arguments, see the GraphQL schema reference.