Metronome Security API
[Security](https://docs.metronome.com/developer-resources/security/) endpoints allow you to retrieve security-related data.
[Security](https://docs.metronome.com/developer-resources/security/) endpoints allow you to retrieve security-related data.
openapi: 3.0.1
info:
title: Metronome Alerts Security API
version: 1.0.0
description: '[Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor customer spending, balances, and other billing factors. Use these endpoints to create, retrieve, and archive customer alerts. To view sample alert payloads by alert type, navigate [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)'
servers:
- url: https://api.metronome.com
description: Production server
security:
- bearerAuth: []
tags:
- name: Security
description: '[Security](https://docs.metronome.com/developer-resources/security/) endpoints allow you to retrieve security-related data.'
paths:
/v1/auditLogs:
get:
description: "Get a comprehensive audit trail of all operations performed in your Metronome account, whether initiated through the API, web interface, or automated processes. This endpoint provides detailed logs of who did what and when, enabling compliance reporting, security monitoring, and operational troubleshooting across all interaction channels.\n\n### Use this endpoint to:\n- Monitor all account activity for security and compliance purposes\n- Track configuration changes regardless of source (API, UI, or system)\n- Investigate issues by reviewing historical operations\n\n### Key response fields: \nAn array of AuditLog objects containing:\n- id: Unique identifier for the audit log entry\n- timestamp: When the action occurred (RFC 3339 format)\n- actor: Information about who performed the action\n- request: Details including request ID, IP address, and user agent\n- `resource_type`: The type of resource affected (e.g., customer, contract, invoice)\n- `resource_id`: The specific resource identifier\n- `action`: The operation performed\n- `next_page`: Cursor for continuous log retrieval\n\n### Usage guidelines:\n- Continuous retrieval: The next_page token enables uninterrupted log streaming—save it between requests to ensure no logs are missed\n- Empty responses: An empty data array means no new logs yet; continue polling with the same next_page token\n- Date filtering:\n - `starting_on`: Earliest logs to return (inclusive)\n - `ending_before`: Latest logs to return (exclusive)\n - Cannot be used with `next_page`\n- Resource filtering: Must specify both `resource_type` and `resource_id` together\n- Sort order: Default is `date_asc`; use `date_desc` for newest first\n"
operationId: getAuditLogs-v1
summary: Get audit logs
parameters:
- $ref: '#/components/parameters/PageLimit'
- $ref: '#/components/parameters/NextPage'
- name: starting_on
in: query
description: RFC 3339 timestamp of the earliest audit log to return. Cannot be used with 'next_page'.
required: false
schema:
type: string
format: date-time
- name: ending_before
in: query
description: RFC 3339 timestamp (exclusive). Cannot be used with 'next_page'.
required: false
schema:
type: string
format: date-time
- name: sort
in: query
description: Sort order by timestamp, e.g. date_asc or date_desc. Defaults to date_asc.
required: false
schema:
type: string
enum:
- date_asc
- date_desc
- name: resource_id
in: query
description: Optional parameter that can be used to filter which audit logs are returned. If you specify resource_id, you must also specify resource_type.
required: false
schema:
type: string
- name: resource_type
in: query
description: Optional parameter that can be used to filter which audit logs are returned. If you specify resource_type, you must also specify resource_id.
required: false
schema:
type: string
tags:
- Security
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- data
- next_page
properties:
data:
type: array
items:
$ref: '#/components/schemas/AuditLog'
next_page:
type: string
description: The next_page parameter is always returned to support ongoing log retrieval. It enables continuous querying, even when some requests return no new data. Save the next_page token from each response and use it for future requests to ensure no logs are missed. This setup is ideal for regular updates via automated processes, like cron jobs, to fetch logs continuously as they become available. When you receive an empty data array, it indicates a temporary absence of new logs, but subsequent requests might return new data.
nullable: true
/v1/services:
get:
description: 'Gets Metronome''s service registry with associated IP addresses for security allowlisting and firewall configuration. Use this endpoint to maintain an up-to-date list of IPs that your systems should trust for Metronome communications. Returns service names and their current IP ranges, with new IPs typically appearing 30+ days before first use to ensure smooth allowlist updates.
'
operationId: getServices-v1
summary: Get services
tags:
- Security
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- services
properties:
services:
type: array
items:
$ref: '#/components/schemas/Service'
components:
schemas:
AuditLog:
type: object
required:
- id
- timestamp
- request
properties:
id:
type: string
timestamp:
type: string
format: date-time
actor:
$ref: '#/components/schemas/Actor'
request:
type: object
required:
- id
properties:
id:
type: string
ip:
type: string
user_agent:
type: string
resource_type:
type: string
resource_id:
type: string
action:
type: string
status:
type: string
enum:
- success
- failure
- pending
description:
type: string
Actor:
type: object
required:
- id
- name
properties:
id:
type: string
email:
type: string
name:
type: string
Service:
type: object
required:
- name
- usage
- ips
properties:
name:
type: string
usage:
type: string
enum:
- makes_connections_from
- accepts_connections_at
ips:
type: array
items:
type: string
parameters:
PageLimit:
name: limit
in: query
description: Max number of results that should be returned
required: false
schema:
type: integer
minimum: 1
maximum: 100
NextPage:
name: next_page
in: query
description: Cursor that indicates where the next page of results should start.
required: false
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer