- Who did what, and when?
- Which external systems were accessed, and did those calls succeed?
- What integration APIs did Resolve use?
- User Access Logs: capture authentication, authorization and user API access requests. These are available through a stream exposed via the Audit Logs API.
- Integration Access Logs: capture each API request made to configured integrations on the Resolve Satellite during both autonomous execution and human-in-the-loop investigations and actions.
User Access Logs
User Access Logs capture user activities within the Resolve AI platform. They form part of the unified audit stream and represent the authoritative record of who accessed Resolve and what actions they took. These logs include:- User authentication and logout events
- Authorization, role, and group changes
- API requests made to Resolve AI
- Team configuration changes
Accessing the User Access Logs using Audit Logs API
Endpoint
https://api.app0.resolve.ai/audit_logs/:orgId
Authentication To use the Audit Logs API, you must first create an API Token from the Resolve AI web application. This token is used to authenticate your requests.
- Navigate to API Tokens in the sidebar: https://app0.resolve.ai/admin/api-tokens.
- Click Create API Token.
- Provide a name for your token.
- Copy and store the token securely - this is the only time you will see it.
- Click “I copied the token!” to save and exit.
Path Parameters
orgId (string, required): Your organization’s unique identifier.
Query Parameters
Time Range Rules:
- If both start and end are omitted: Defaults to the last 24 hours.
- If only start is provided: end defaults to start +1 day.
- If only end is provided: start defaults to end -1 day.
- Maximum allowed range: 7 days.
startmust be beforeend.
400 Bad Request with an error message.
Error Responses
Pagination The Audit Logs API supports pagination based on log timestamps. By default, the API returns up to 1000 records per request. If there are more logs available within the requested time range, an
end_before token will be included in the response. You can use this token in a subsequent request to fetch the next page of results.
- Default page size: 1000 logs.
- Custom limit: You can pass a limit query parameter to request fewer logs (must be between 1 and 1000).
- Pagination token: If the result set is exactly equal to the page size, the response will include an end_before timestamp (ISO 8601 string). This represents the timestamp of the last log in the current response minus 1 millisecond.
- To fetch the next page, re-issue the request with
end=<end_before_value>to get logs before that point in time.
Note: Pagination is based on descending timestamps (newest to oldest). The end parameter is treated as an exclusive upper bound.
Event Schemas Each log entry conforms to one of the following OCSF classes:
- Authentication
- Authorization
- API Activity
Integration Access Logs
Integration Access Logs capture outbound API requests made by the Resolve Satellite during investigations and actions, including both autonomous execution and human-in-the-loop workflows. This includes calls to monitoring tools, cloud providers, and custom integrations. These logs capture execution-level details such as:- Integration and endpoint accessed
- HTTP method and status code
- Request and response sizes
- Success or failure outcome
- Sanitized request and response metadata
Note: Audit logs never capture authentication secrets or tokens used in request headers.
Accessing the Integration Access Logs from the Resolve Satellite
Use Satellite audit logs when you need to monitor or troubleshoot integration HTTP activity, including failures, request volume, and payload sizes.Collection Behavior
- Logs are emitted as structured JSON
- Each Satellite audit log includes
audit: truefor easy filtering - Logs include standard metadata fields (timestamp, level, message)
- Satellite logs can optionally be exported via OTLP for direct ingestion into observability backends
Notable Fields
integrationKey: Integration name (e.g., prometheus, grafana)method: HTTP methodbaseUrl: Request URL without query parametersstatusCode: HTTP status coderesult: success or errorrequestBodyBytes,responseBodyBytes: Payload sizes
Filtering Examples You can filter Satellite audit logs using the
audit: true field. The following are illustrative examples of how you can query audit logs emitted by the Resolve Satellite.
- Loki / LogQL
- Splunk
- Datadog
Frequently Asked Questions (FAQs)
1. How do I set up OTLP export for Integration Access Logs on the Resolve Satellite?
1. How do I set up OTLP export for Integration Access Logs on the Resolve Satellite?
You can configure the Resolve Satellite to export Integration Access Logs using the OpenTelemetry Protocol (OTLP). This allows you to forward audit logs directly to an observability backend instead of relying on container log collection.RequirementsTo enable OTLP export, both of the following must be set:Enable dual logging (OTLP + stdout/stderr):OTLP Endpoint Details
- An OTLP logging flag (
OTLP_LOGGINGorOTLP_AND_CONSOLE_LOGGING) - A receiver URL (
OTLP_LOGS_RECEIVER_URL)
- Logs endpoint:
{OTLP_LOGS_RECEIVER_URL}/v1/logs - Protocol:
OTLP HTTP/JSON - Fallback behavior:
— If
OTLP_LOGS_RECEIVER_URLis not set, the Satellite falls back toOTLP_RECEIVER_URL— If neither is set, OTLP export is disabled
2. How long are audit logs retained in Resolve AI?
2. How long are audit logs retained in Resolve AI?
User access logs available via the Audit Logs API are retained for 30 days.
Integration access logs are only available directly from the Resolve Satellite via stdout/stderr or OTLP for operational monitoring.
For long-term retention, export audit logs to your own logging or SIEM system for storage and analysis.
3. What timestamp format should I expect?
3. What timestamp format should I expect?
All timestamps are returned in ISO 8601 UTC format.
4. Does the Audit Log API support token rotation?
4. Does the Audit Log API support token rotation?
Yes. API tokens are created and managed through the Resolve UI.
- Tokens can be revoked at any time by an admin
- New tokens can be created through the UI
- Token rotation policies can be implemented according to your organization’s security requirements
5. What is the event schema I should expect for the audit logs?
5. What is the event schema I should expect for the audit logs?
The Audit Log API output follows the Open Cybersecurity Schema Framework (OCSF) version 1.5.0. Each log entry is structured in accordance with one of the following schema classes.(i) Authentication Logs
Class: OCSF AuthenticationDescription: Captures user login and logout events, including success/failure status, protocol used, and device/network metadata.Common Fields:(ii) Authorization Logs
Class: OCSF Authorize Session
Description: Logs session-level privilege or group assignment actions such as role changes, session establishment, or group binding events.Common Fields:(iii) API Activity Logs
Class: OCSF API ActivityDescription: Tracks API requests made by users, capturing request and response details, trace identifiers, endpoint activity, and session metadata.Common Fields:
- organization_id: Organization where the event originated
- activity_id: Type of authentication action (e.g., logon, logoff)
- auth_protocol_id: Auth protocol used (e.g., SAML, OAuth2)
- category_uid, class_uid, type_uid: OCSF taxonomy identifiers
- status_id: Outcome (success, failure)
- user: { name, email }
- time: ISO 8601 timestamp of event
- service.name: e.g., “Resolve Web App”
- http_request: { user_agent, url }
- metadata: { product, version }
- src_endpoint: { ip, type_id } — Source IP and endpoint type
- dst_endpoint: { hostname } — Target host accessed
- is_remote: Whether the session was remote
- organization_id: Org associated with the event
- activity_id: Authorization-related activity
- category_uid, class_uid, type_uid: OCSF classification
- status_id: Outcome status (e.g., success, failure)
- severity_id: Informational, warning, etc.
- event_time: ISO 8601 timestamp
- user: { name, email }
- groups: Array of assigned groups, if applicable
- session.uid: Session identifier (optional)
- http_request: { user_agent, url }
- metadata: { product, version }
- src_endpoint: { ip, type_id }
- message: Human-readable explanation or annotation (optional)
- organization_id: Source organization
- activity_id: Activity type (e.g., create, read, update, delete)
- category_uid, class_uid, type_uid: OCSF identifiers
- status_id: Whether the request was successful
- severity_id: Severity of the request (typically informational)
- time: ISO timestamp of request
- message: Custom message (e.g., “User fetched timeline”)
- method: HTTP method (GET, POST, etc.)
- endpoint: API endpoint accessed
- actor: { user, session_uid }
- http_request: { url, http_headers } (sensitive values redacted)
- http_response: { status_code, http_headers }
- src_endpoint: { ip }
- dst_endpoint: { hostname, port }
- metadata: { product, environment }

