Skip to navigation

Observability & support

All events sent to Schematic are available in the Events tab to users. The latest flag evaluation is visible in the UI as it occurs to determine when the evaluation occurred and how Schematic evaluated the flag.

Audit log

The Audit Log under Settings → Audit Log records, for each environment, the actions users take within Schematic and the create, update, and delete requests made to the API. The request-type filter above the table narrows the list to User, API, or Component entries, or shows All.

Embedded components authenticate with a temporary access token, so their entries are labeled Component in the Author column, followed by the API key that issued the token and the company the token was issued for, which links to that company’s profile. In the API, these entries carry company_id and a company object with the company’s id and name, and the audit log list accepts a company_id filter. API and dashboard requests whose response is a company also carry its company_id. Entries recorded before October 30, 2026 have no company.

Changes made through the MCP server are described by the tool that made them and the resource it acted on, such as Update plan pricing: Acme, with the resource linked. Only tool calls that change data are recorded, so an assistant that only reads leaves no entries. In the API and in a CSV export, the entry’s URL is /mcp/ followed by the tool name, for example /mcp/update_plan_pricing. An assistant that signed in with OAuth records its changes under the user who granted access, listed under User, and one that connects with a secret API key records them under that key, listed under API.

Audit log entries written through the MCP server

Each entry identifies the resource it acted on by resource_type and resource_id_string, which holds the Schematic ID, such as feat_GwmRSakgUe3. The integer resource_id field is deprecated and is always null.

Exporting the audit log

To keep audit history longer than Schematic retains it, export it to CSV through the API with a secret key and store the file yourself. An export runs in the background, and you retrieve it in three steps:

  1. Call Create data export with export_type set to audit-log and output_file_type set to csv or csv.gz. The response returns the export’s id with a status of pending.
  2. Call Get data export until status is success or failure. A failure status means no file was produced, and you can create a new export to try again.
  3. Call Get data export artifact to download the file. The response body is the file itself, and its Content-Disposition header names it after the export type and creation time, for example audit-log-20261106-143000.csv.
curl -X POST https://api.schematichq.com/data-exports \
-H "X-Schematic-Api-Key: $SCHEMATIC_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"export_type": "audit-log",
"output_file_type": "csv",
"metadata": {
"export_type": "audit-log",
"start_time": "2026-10-01T00:00:00Z",
"end_time": "2026-11-01T00:00:00Z"
}
}'
curl https://api.schematichq.com/data-exports/$DATA_EXPORT_ID \
-H "X-Schematic-Api-Key: $SCHEMATIC_SECRET_KEY"
curl -OJ https://api.schematichq.com/data-exports/$DATA_EXPORT_ID/artifact \
-H "X-Schematic-Api-Key: $SCHEMATIC_SECRET_KEY"

Schematic deletes the file three days after the export completes, so download it within that window. List data exports returns earlier exports, filtered by export_type and status.

An export covers the environment the secret key belongs to. The metadata object takes the same filters as the audit log list, and omitting it exports every retained entry in the environment:

FieldEffect
export_typeRequired whenever metadata is present, and must be audit-log
start_timeIncludes entries that started at or after this time
end_timeIncludes entries that started before this time; must be later than start_time
actor_typeIncludes only one actor type: api_key, app_user, stripe_app, system, or temporary_access_token
qFree-text search over entries, up to 512 characters
notification_email_recipient_email_addressesUp to 100 account member emails that receive a message when the export completes

A range that starts before the oldest retained entry returns only the entries still retained.

The CSV has one row per entry, newest first, with these columns:

ColumnContents
IDThe request ID, shown as Request ID in the dashboard
Started At, Ended AtWhen the request started and finished, as RFC 3339 timestamps
Actor Typeapi_key, app_user, stripe_app, system, or temporary_access_token
User NameThe dashboard user’s name, or the API key’s name for API key requests
API Key ID, API Key NameThe key that made the request or issued the temporary access token
Environment ID, Environment NameThe environment the request ran in
Method, URLThe HTTP method and request path
Resource Type, Resource Name, Resource IDThe resource the request acted on; Resource ID holds the Schematic ID string
Secondary ResourceA second resource recorded on the entry, when there is one
Response CodeThe HTTP status code

Request and response bodies are not part of the export. Open an entry in the dashboard to read them.

Where flag evaluation happens

Flag evaluation can run either in Schematic or in your own infrastructure, which determines where a check is observable.

By default, checks are evaluated by Schematic. With DataStream, the SDK holds current flag and company state locally and evaluates rules client-side, so a check does not leave your process. Replicator maintains a full local copy of your flag data in your own infrastructure, so reads do not leave your network.

Locally evaluated checks are traceable in your own logs and metrics as well as in Schematic. See Availability for the tradeoffs between these strategies.

Uptime and support

Live and historical uptime is published on the status page, broken out by API, App, Event processing, and Checkout Flow / Customer Portal.

The team is on call 24 hours a day, 7 days a week, and can be reached either in Slack or at support@schematichq.com.

Reporting a bug

Please report bugs to support@schematichq.com or via Slack.