# Metronome MCP connector

The Metronome connector lets Claude, ChatGPT, Cursor, or any MCP client look up usage, manage billable metrics, credit types, customer alerts, and approval requests in Metronome, with each person signed in as themselves and every action logged.

Source: https://elaichi.ai/connectors/metronome/

## Facts

| | |
| --- | --- |
| Application | Metronome |
| Category | Subscription Platform |
| AI tools | 139 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 139 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Metronome is connected

- Summarize this month's approval requests pending in Metronome.
- Which customers triggered billing alerts this week?
- List billable metrics archived in the last 30 days.

## Connect Metronome in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Metronome.
2. Optionally set Share with, then press Connect.
3. Paste a Metronome API key. One person generates a token in Metronome and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Metronome tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Metronome to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Metronome to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Metronome to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Metronome to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Metronome tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Metronome through Elaichi

### Check a customer's usage before month end

Finance. Ask what a customer has consumed this period by seat or by group and get the figure straight from Metronome, without opening a dashboard or waiting on an export.

### Review and approve pending approval requests

Revenue operations. Pull up every open approval request in Metronome, read the details, and approve or deny it in the same conversation so pricing changes stop waiting on someone to log in.

### Set up a new billable metric

Billing operations. Describe the event you want to charge on and have the metric created in Metronome, or archive an old one once it is no longer used in any plan.

### Reset a customer's spend alert after a call

Customer success. When a customer has been warned about a threshold and agreed a path forward, reset their alert in Metronome and confirm which alerts are still active on the account.

### Define credit types for a new offering

Product. List the credit types already in Metronome, add one for a new product line, and archive types that belong to retired packaging.

### Send test usage events and confirm they landed

Engineering. Ingest a handful of usage events into Metronome from a plain request, then look up the resulting usage to check the metric counts them the way you expect.

## Frequently asked questions

### How do I connect Metronome to Claude?

In Elaichi, open connectors, choose Metronome, and paste a Metronome API key when asked. There is no OAuth application to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Metronome is ready to use.

### Does Metronome work with ChatGPT and Cursor as well as Claude?

Yes. Once Metronome is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Metronome once and every client you use picks it up.

### What can an AI agent actually do with my Metronome data?

With Metronome connected, an agent can look up a customer's usage by seat or by group, list and reset customer alerts, create or archive billable metrics and credit types, review approval requests and approve or deny them, send usage events, and manage billing settings such as Stripe configuration. Because Metronome offers well over a hundred actions, short concrete asks work best, for example "show open approval requests" rather than a long paragraph.

### Does connecting Metronome give the AI access to everything in my billing setup?

No. Everything an agent does in Metronome runs under the API key the person connected, so it can only reach what that key is allowed to reach. Elaichi can narrow that further by blocking specific actions for a team, and it can never grant more than the Metronome key itself allows.

### Can my team share one Metronome connection?

Yes. One person connects Metronome in Elaichi and shares the connection with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log records who looked up usage or approved a request in Metronome, not just which connection was used.

### Can I stop an agent from deleting or changing things in Metronome?

Yes. Restrictions in Elaichi apply per action, so you can allow reading usage and alerts in Metronome while blocking archiving metrics, deleting Stripe billing configuration, or approving requests. A blocked action is never shown to Claude, ChatGPT, or Cursor at all, so no prompt can reach it.

### What happens to a Metronome connection when someone leaves?

When you offboard a person in Elaichi, their access to Metronome through every client ends at once. A Metronome connection shared with a team keeps working for everyone else, and if you disconnect Metronome in Elaichi it disappears from Claude, ChatGPT, Cursor, and every other client in one step.

## All 139 Metronome tools

Every tool below is callable through https://api.elaichi.ai/mcp once Metronome is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Metronome approval requests** (List). List approval requests in Metronome submitted by agentic tokens, with optional status and creation-date filters. Returns: id, status, token_name, created_at, expires_at, approval_url, reviewed_by, reviewed_at, completed_at, approval_request_payload, response, name, description, method, path, body.
- **Create a Metronome approval request** (Create). Submit a write operation for human approval in Metronome when an agentic token blocks the mutation. Returns the created approval request including id, status, approval_url, name, description, method, path, and body. Required: name, description, method, path, body.
- **Get single Metronome approval request by ID** (Get). Get a single approval request in Metronome by id. Returns: id, status, token_name, created_at, expires_at, approval_url, reviewed_by, reviewed_at, completed_at, approval_request_payload, response, name, description, method, path, body. Required: id.
- **Metronome approval requests approve** (Approve). Approve a pending approval request in Metronome, allowing the queued write operation to execute automatically. Returns: id, status, token_name, created_at, expires_at, approval_url, reviewed_by, reviewed_at, completed_at, approval_request_payload, response, name, description, method, path, body. Required: approval_request_id.
- **Create a Metronome approval request deny** (Create). Deny a pending approval request in Metronome, preventing the queued write operation from executing and closing the request. Returns the updated approval request including id, status, token_name, approval_url, and approval_request_payload. Required: approval_request_id.
- **Create a Metronome alerts archive** (Create). Archive a threshold notification in Metronome, permanently disabling it and removing it from active monitoring across all customers. Returns: id. Archived threshold notifications cannot be re-enabled. Required: id.
- **Create a Metronome alerts create** (Create). Create a threshold notification in Metronome to monitor customer spending, credit balances, and billing metrics in real time. Returns: id. Type-specific fields such as credit_type_id or billable_metric_id may be required depending on alert_type. evaluate_on_create defaults to true for instant evaluation. Required: alert_type, name, threshold.
- **Create a Metronome billable metrics create** (Create). Create a billable metric in Metronome that filters and aggregates events from your event stream into continuously tracked usage metrics for billing. Returns: id. Supports standard filtering/aggregation (streaming, optimized for low latency and high throughput) or a custom SQL query for more flexible aggregation options. Required: name.
- **Create a Metronome billable metrics archive** (Create). Archive a billable metric in Metronome by its ID. Retired metrics can no longer be used in new Products, though existing Products continue to meter normally. Returns: id. Required: id.
- **Get single Metronome customer alerts get by ID** (Get). Get a threshold notification's real-time evaluation status for a specific customer in Metronome. Returns: customer_status, triggered_by, alert, updated_at. Required: customer_id, alert_id.
- **List all Metronome customer alerts lists** (List). List all threshold notification configurations and their current evaluation statuses for a specific Metronome customer. Returns: customer_status, triggered_by, alert. Defaults to enabled notifications only. Required: customer_id.
- **Create a Metronome customer alerts reset** (Create). Reset a threshold notification in Metronome, forcing an immediate re-evaluation against current thresholds and clearing any cached evaluation state. Returns an empty 200 response on success. Re-evaluation completes asynchronously and may trigger new webhook notifications if thresholds are breached. Required: customer_id, alert_id.
- **Create a Metronome billing config API key** (Create). Set the API key for a billing provider in Metronome, used for sending invoices to the billing provider (e.g., if the provider is Stripe, this is the restricted key). Deprecated — use Create Stripe billing settings instead. Returns an empty 200 response on success. Required: billing_provider_type, api_key.
- **Create a Metronome config webhook secret** (Create). Set the webhook secret for the client in Metronome, used for validating webhook messages sent to the external Metronome webhook endpoint. Returns an empty 200 response on success. Required: webhook_secret.
- **Create a Metronome billing config stripe** (Create). Create Stripe billing settings in Metronome. For prepaid credit grants and recharges, the Stripe API key needs read-write access to Invoices and PaymentIntents and read-only access to PaymentMethods and Customers. Returns a success response with no documented response body. Required: stripe_api_key.
- **Metronome billing config stripes bulk update** (Update). Update Stripe billing settings in Metronome with partial updates. Individual settings can be removed by specifying null values. Returns a success response with no documented response body.
- **Metronome billing config stripes bulk delete** (Delete). Delete all Stripe billing settings in Metronome. Returns a success response with no documented response body.
- **List all Metronome credit types lists** (List). List all pricing units in Metronome, including fiat currency types (e.g., USD, GBP) and custom pricing units such as AI credits. Returns: name, id, is_currency.
- **Create a Metronome credit types create** (Create). Create a custom pricing unit in Metronome for charging usage in a non-fiat unit such as AI credits. Returns: id. Required: name.
- **Create a Metronome credit types archive** (Create). Archive a custom pricing unit (credit type) in Metronome. Once archived, it no longer appears in pricing unit selectors by default. Returns: id. Required: id.
- **Create a Metronome ingest** (Create). Send usage events to Metronome for real-time billing calculations. Accepts 1 to 100 events per request, each with a transaction_id idempotency key, customer_id, event_type, and timestamp. Events can be backdated up to 34 days with automatic 34-day deduplication. Returns a 200 Success response with no body.
- **Get single Metronome usage seat by ID** (Get). Get seats usage data in Metronome for a specified customer, broken into time intervals of the specified window size. Returns: starting_on, ending_before, value. Required: customer_id, seat_metric_id, usage_type, window_size.
- **Get single Metronome usage group by ID** (Get). Retrieve granular usage data for a Metronome customer and billable metric, segmented by custom grouping dimensions such as region, team, or model type. Returns: starting_on, ending_before, group_key, group_value, group, value. For compound group keys, pass all constituent keys in group_key; across all group_filters arrays include at most 200…. Required: customer_id, billable_metric_id, window_size.
- **Get single Metronome usage by ID** (Get). Get batched usage data in Metronome, aggregated across multiple customers and billable metrics broken down by time windows. Returns: customer_id, billable_metric_id, billable_metric_name, start_timestamp, end_timestamp, value, groups. Required: window_size, starting_on, ending_before.
- **List all Metronome search events** (List). Search Metronome events by transaction IDs to validate usage pipeline integrity and detect revenue leakage. Returns: id, transaction_id, customer_id, event_type, timestamp, properties, processed_at, is_duplicate, matched_customer, matched_billable_metrics. Only events from the last 34 days are searchable; this endpoint is heavily rate-limited and designed for sampling…. Required: transactionIds.
- **Get single Metronome billable metric by ID** (Get). Get a single Metronome billable metric by id. Returns: id, name, event_type_filter, property_filters, aggregation_type, aggregation_key, group_keys, custom_fields, sql, archived_at. Required: id.
- **Update a Metronome billable metric by ID** (Update). Update the display name of an existing Metronome billable metric. Returns: id, name, event_type_filter, property_filters, aggregation_type, aggregation_key, group_keys. Only the name can be modified; other configurations cannot be changed after creation. Required: id, name.
- **List all Metronome billable metrics** (List). List all Metronome billable metrics with their complete configurations. Returns: id, name, event_type_filter, property_filters, aggregation_type, aggregation_key, group_keys, custom_fields, sql, archived_at. Archived metrics are excluded by default; set include_archived to true to include them.
- **Create a Metronome billable metric** (Create). Create a new Metronome billable metric with a name, aggregation type, and event filter. Returns: id, name, aggregation_type, aggregation_key, event_type_filter, property_filters, group_keys, custom_fields. Required: name, aggregate, filter.
- **Create a Metronome customers set billable status** (Create). Set a customer's billable status in Metronome. Returns: id, current_billable_status. Metronome 1.0 plan invoices are not supported; endpoint availability depends on client configuration. Required: customer_id, billable_status, effective_at.
- **Create a Metronome customers archive** (Create). Archive a customer in Metronome, automatically archiving all contracts as of the current date and voiding corresponding invoices. Returns: id. Once archived, a customer cannot be unarchived. Required: id.
- **Get single Metronome customer by ID** (Get). Get a single Metronome customer by id. Returns: id, external_id, ingest_aliases, name, customer_config, custom_fields, created_at, archived_at, updated_at, current_billable_status. Required: id.
- **List all Metronome customers** (List). List all Metronome customers with optional filtering by ingest alias, customer IDs, Salesforce account IDs, or archived status. Returns each customer's id, name, external_id, ingest_aliases, created_at, updated_at, customer_config, and custom_fields.
- **Create a Metronome customer** (Create). Create a new Metronome customer with optional ingest aliases and billing provider configuration. Returns: id, external_id, ingest_aliases, name, custom_fields. Required: name.
- **Metronome customers get named schedule** (Get). Get a named schedule for a specific Metronome customer at a given date. Returns an array of schedule intervals with starting_at, ending_before, and value. Required: customer_id, schedule_name.
- **List all Metronome customer billable metrics** (List). List billable metrics available for a specific Metronome customer, including aggregation configuration and event filters. Returns: group_by, group_keys, name, id, aggregate, aggregate_keys, filter, aggregation_key, event_type_filter, property_filters, custom_fields, sql, archived_at, aggregation_type. Required: customer_id.
- **Create a Metronome customer set ingest alias** (Create). Set ingest aliases for a Metronome customer, associating it with internal IDs that can be used in the customer_id field when sending usage events. This call is idempotent and fully replaces the existing set of ingest aliases. Returns: id, external_id, ingest_aliases, name, current_billable_status. Required: customer_id, ingest_aliases.
- **Create a Metronome customer set name** (Create). Update the display name for a Metronome customer record. Returns the updated customer object including id, external_id, ingest_aliases, and name. Required: customer_id, name.
- **Update a Metronome customer update config by ID** (Update). Update configuration settings for a Metronome customer, such as external system integrations (e.g., Salesforce account ID). Returns: id, salesforce_account_id, current_billable_status. Required: customer_id.
- **List all Metronome customer purchased seats** (List). List purchased seats for a Metronome customer, returning the number of seats purchased for the current period. Returns: charge_id, seat_count, id, created_at, updated_at, external_id, ingest_aliases, name, customer_config, custom_fields. Required: customer_id.
- **Create a Metronome invoices invoice seat** (Create). Create a prorated invoice in Metronome for seat additions on a customer plan. Returns the created invoice object including its id, customer_id, type, status, line_items, subtotal, total, credit_type, and billing period timestamps. Required: customer_id, seat_charges.
- **List all Metronome customer invoices** (List). List Metronome invoices for a customer with flexible filtering by status, type, date range, credit type, and contract. Returns: id, customer_id, customer_custom_fields, netsuite_sales_order_id, salesforce_opportunity_id, net_payment_terms_days, credit_type, line_items, start_timestamp, end_timestamp, issued_at, created_at, status, total, type, external_invoice, revenue_system_invoices,…. Required: customer_id.
- **Get single Metronome customer invoice by ID** (Get). Get a single Metronome invoice by id for a specific customer, including detailed line items, credit type, billing period, and total. Returns: id, customer_id, customer_custom_fields, netsuite_sales_order_id, salesforce_opportunity_id, net_payment_terms_days, credit_type, line_items, start_timestamp, end_timestamp, issued_at, created_at, status, total, type, external_invoice,…. Required: id, customer_id.
- **List all Metronome invoices breakdowns** (List). List Metronome invoice breakdowns for a customer as hourly or daily time-series segments. Returns: id, customer_id, customer_custom_fields, netsuite_sales_order_id, salesforce_opportunity_id, net_payment_terms_days, credit_type, line_items, start_timestamp, end_timestamp, issued_at, created_at, status, total, type, external_invoice, revenue_system_invoices, contract_id, contract_custom_fields,…. Required: customer_id, starting_on.
- **Get single Metronome invoice PDF by ID** (Get). Get a PDF version of a specific Metronome invoice by invoice id. Returns a binary PDF file containing the full invoice with line items, totals, billing period, and customer details. Required: id, customer_id.
- **List all Metronome invoices spend breakdowns** (List). List Metronome spend invoice breakdowns for a customer, dynamically grouping costs by custom dimensions like region or user. Returns: id, customer_id, credit_type, line_items, start_timestamp, end_timestamp, issued_at, created_at, status, type, contract_id, breakdown_start_timestamp, breakdown_end_timestamp. Required: customer_id, starting_on, ending_before.
- **Create a Metronome invoices void** (Create). Void an invoice in Metronome by permanently cancelling it, setting its status to voided to stop payment processing and remove it from customer billing. Returns: id. Required: id.
- **Create a Metronome invoices regenerate** (Create). Regenerate a voided Metronome invoice, recalculating it with up-to-date rates, available balances, and fees regardless of the original billing period. Returns: id. Required: id.
- **Create a Metronome customer preview event** (Create). Preview how a set of usage events will affect a customer's invoices in Metronome, generating draft invoices using the customer's current contract configuration and the provided events. Returns an array of draft invoices with id, customer_id, type, start_timestamp, end_timestamp, total, status, line_items, credit_type, and contract_id. Customers on contracts with SQL…. Required: customer_id, events.
- **Create a Metronome set up billing provider** (Create). Set up account-level billing provider configuration in Metronome. Returns: delivery_method_id. The configuration object structure is specific to the billing provider and delivery method combination. Required: billing_provider, delivery_method, configuration.
- **Create a Metronome upsert anrok API token** (Create). Upsert an Anrok API token for specified delivery method IDs in Metronome, mapping the Anrok key to the appropriate billing entity for Threshold Billing workflows. Returns: success. Delivery method IDs can be obtained from the `/listConfiguredBillingProviders` response. Required: delivery_method_ids, anrok_api_token.
- **Create a Metronome upsert avalara credential** (Create). Upsert Avalara credentials in Metronome for specified delivery method IDs, mapping them to the appropriate billing entity for PLG Invoicing. Returns an empty response on success. Required: delivery_method_ids, avalara_environment, avalara_username, avalara_password.
- **Create a Metronome rotate delta stream secret** (Create). Rotate the HMAC secret used to sign Metronome delta stream messages. Returns: secret, starting_on. If starting_on is omitted, the new secret takes effect in 10 minutes; calling while a rotation is already in progress replaces and cancels the previous rotation.
- **List all Metronome list configured billing providers** (List). List all configured billing providers and their delivery method configurations for your Metronome account. Returns: billing_provider, delivery_method_id, delivery_method, delivery_method_configuration.
- **Get get customer billing provider configuration by ID** (Get). Fetch all billing provider configurations for a Metronome customer, typically during contract provisioning to obtain the configuration id needed to set a contract's billing configuration. Returns: id, billing_provider, customer_id, configuration, delivery_method_id, delivery_method, delivery_method_configuration, archived_at, unbillable_invoices_configuration. Required: customer_id.
- **Get get customer revenue system configuration by ID** (Get). Fetch all revenue system configurations previously set for a customer in Metronome. Returns an array of configuration objects including id, provider, customer_id, configuration, delivery_method_id, delivery_method, delivery_method_configuration, and archived_at. Required: customer_id.
- **Create a Metronome set customer billing provider configuration** (Create). Create one or more billing provider configurations for a Metronome customer, supporting providers such as Stripe, AWS Marketplace, Azure Marketplace, GCP Marketplace, and NetSuite. Returns an array of created configuration objects including id, billing_provider, customer_id, configuration, delivery_method, delivery_method_id, delivery_method_configuration, and archived_at. Required: data.
- **Create archive customer billing provider configuration** (Create). Archive billing provider configurations for a Metronome customer, taking effect immediately and stopping metering to downstream systems for any active contracts using the configuration. Returns: customer_billing_provider_configuration_ids, customer_id, id. Any validation failure for an individual configuration prevents the entire…. Required: customer_billing_provider_configuration_ids, customer_id.
- **Create a Metronome set customer revenue system configuration** (Create). Create revenue system configurations for a Metronome customer, which can then be associated to a contract for revenue workflows. Returns the inserted configuration objects including id, customer_id, delivery_method_id, provider, and configuration. Required: data.
- **Create a Metronome archive customer revenue system configuration** (Create). Archive existing revenue system configurations for a customer in Metronome. Archiving takes effect immediately. Returns: customer_revenue_system_configuration_ids, customer_id, id. Required: customer_revenue_system_configuration_ids, customer_id.
- **Metronome dashboards get embeddable URL** (Get). Generate a secure, time-limited embeddable dashboard URL for a Metronome customer, ready to use in an iframe. Returns: url. Dashboard types available are invoices, usage, or commits_and_credits; dashboard_options are supported for the invoices dashboard only. Required: customer_id, dashboard.
- **Create a Metronome integrations log** (Create). Log events from integration services to Cloudwatch in Metronome. The request body resembles an AWS CloudWatch PutMetricData request. Returns a 200 Success response with no documented response body. Required: service_name, metric_name, dimensions.
- **List all Metronome audit logs** (List). List audit logs in Metronome tracking all operations performed via API, web UI, or automated processes. Returns: id, timestamp, actor, request, resource_type, resource_id, action, status, description. Resource filtering requires both resource_type and resource_id together; date filters (starting_on, ending_before) cannot be used with next_page.
- **List all Metronome services** (List). List Metronome's service registry with associated IP addresses for security allowlisting and firewall configuration. Returns: name, ips. New IPs typically appear 30+ days before first use to ensure smooth allowlist updates. Use this endpoint to maintain an up-to-date list of IPs your systems should trust for Metronome communications.
- **Create a Metronome custom fields add key** (Create). Create a custom field key for a Metronome entity (e.g. customer, contract, product) to store metadata like foreign keys or descriptors. Returns an empty 200 response on success. If enforce_uniqueness is true, setting a duplicate custom field value for the key will fail. Required: entity, key, enforce_uniqueness.
- **Create a Metronome custom fields remove key** (Create). Remove a custom field key from the allowlist for a specific entity type in Metronome, preventing future use of that key across all entity instances. Existing values on entity instances become inaccessible once the key is removed. Returns an empty 200 response on success. Required: entity, key.
- **Create a Metronome custom fields set value** (Create). Set custom field values on a Metronome entity instance, overwriting existing values for matching keys while preserving other fields. All updates are transactional — either all values are set or none are. Returns an empty 200 response on success. Custom field values are limited to 200 characters each. Required: entity, entity_id, custom_fields.
- **Delete a Metronome custom fields delete value by ID** (Delete). Delete specific custom field values from a Metronome entity instance by specifying the field keys to remove, preserving other fields on the same entity. Returns an empty 200 response on success. Required: entity, entity_id, keys.
- **Metronome custom fields list keys** (List). List active custom field keys in Metronome with optional filtering by entity type (customer, contract, product, etc.). Returns: entity, key, enforce_uniqueness.
- **Get single Metronome products get by ID** (Get). Get a Metronome product by its ID, including all metadata and historical changes. Returns: id, type, archived_at, initial, current, updates, custom_fields. Required: id.
- **List all Metronome products lists** (List). List all products in your Metronome organization with their complete configuration, version history, and metadata. Returns: id, type, archived_at, initial, current, updates, custom_fields. Archived products are excluded by default; set archive_filter to ALL or ARCHIVED to include them.
- **Create a Metronome products create** (Create). Create a new product in Metronome. Products represent individual product or service offerings that appear as line items on customer invoices, analogous to SKUs in an ERP system. Returns: id. Required: name, type.
- **Update a Metronome products update by ID** (Update). Update a Metronome product's configuration including names, metrics, pricing rules, and composite settings while maintaining billing continuity for active customers. Returns: id. The starting_at timestamp must fall on an hour boundary; product type cannot be changed after creation. Required: product_id, starting_at.
- **Create a Metronome products archive** (Create). Archive a product in Metronome. Existing rate cards continue to function but the product is no longer available for newly created rates; archived products cannot be unarchived. Returns: id. Required: product_id.
- **Metronome contract pricing rate cards get rate schedule** (Get). Get a rate schedule from a Metronome rate card starting at a given date, optionally filtering by product id or pricing group values. Returns: product_id, product_name, product_tags, product_custom_fields, pricing_group_values, starting_at, ending_before, entitled, rate, commit_rate, billing_frequency, rate_type, price, id, customer_id, initial, current, amendments, custom_fields. Required: rate_card_id, starting_at.
- **Metronome contract pricing rate cards get rates** (Get). Get rates from a Metronome rate card at a specific timestamp, optionally filtering by product id or pricing group values. Returns: product_id, product_name, product_tags, product_custom_fields, pricing_group_values, starting_at, ending_before, entitled, rate, commit_rate, billing_frequency, rate_type, price, id, customer_id, initial, current, amendments, custom_fields. Required: rate_card_id, at.
- **Metronome contract pricing rate cards get named schedule** (Get). Get a named schedule for a Metronome rate card by schedule name and optional covering date. Returns: value, starting_at, ending_before. This endpoint's availability is dependent on your client's configuration. Required: rate_card_id, schedule_name.
- **Get single Metronome rate cards get by ID** (Get). Get a rate card in Metronome by id. Returns: id, name, created_at, created_by, description, fiat_credit_type, credit_type_conversions, aliases, custom_fields. This endpoint does not return rates; use the getRates or getRateSchedule endpoints for rate details. Required: id.
- **List all Metronome rate cards lists** (List). List all rate cards in Metronome. Returns each rate card's id, name, description, fiat_credit_type, created_at, created_by, aliases, and custom_fields. Use getRates or getRateSchedule to view the rates associated with a specific rate card.
- **Create a Metronome rate cards create** (Create). Create a rate card in Metronome with a name, description, underlying fiat currency, credit type conversions, and aliases. Returns: id. A rate card alias can only be used by one rate card at a time; reusing an alias updates the original rate card's alias schedule. After creation, use addRate or addRates to attach product pricing. Required: name.
- **Update a Metronome rate cards update by ID** (Update). Update a rate card's name, description, aliases, and credit type conversion rates in Metronome. Does not affect underlying pricing rates or schedules. Returns: id. Must provide at least one of name, description, aliases, or addCreditTypeConversions. Required: rate_card_id.
- **Create a Metronome rate cards archive** (Create). Archive a rate card in Metronome, permanently disabling it for use in new contracts while preserving existing contract pricing. Returns: id. Required: id.
- **Create a Metronome rate cards add rate** (Create). Add a new rate to a rate card in Metronome. Returns: rate_type, price, custom_rate, quantity, is_prorated, tiers, pricing_group_values, credit_type, commit_rate. Heavily rate limited — for adding multiple rates, use the bulk_create method instead. Required: rate_card_id, product_id, starting_at, entitled, rate_type.
- **Metronome rate cards add rates bulk create** (Add). Add multiple rates to a rate card in Metronome in a single request. Returns: id. This is the preferred endpoint for adding more than one rate. Required: rate_card_id, rates.
- **Create a Metronome rate cards set rate card products order** (Create). Set the order of products on a Metronome rate card, determining the sequence in which products appear on customers' invoices. Returns: id, initial, current, updates, custom_fields. Required: rate_card_id, product_order.
- **Create a Metronome rate cards move rate card product** (Create). Move products on a Metronome rate card to new positions, controlling the order in which they appear on customer invoices. Returns: id, initial, current, updates, custom_fields. Required: rate_card_id, product_moves.
- **Get single Metronome contracts get by ID** (Get). Get a single Metronome contract (v1) by customer and contract IDs. Returns: id, archived_at, customer_id, package_id, uniqueness_key, initial, current, amendments, custom_fields, customer_billing_provider_configuration, scheduled_charges_on_usage_invoices, subscriptions, spend_threshold_configuration, prepaid_balance_threshold_configuration, spend_trackers.…. Required: customer_id, contract_id.
- **List all Metronome contracts lists** (List). List all contracts for a Metronome customer including pricing, terms, credits, and commitments. Returns: id, archived_at, customer_id, package_id, uniqueness_key, initial, current, amendments, custom_fields, customer_billing_provider_configuration, scheduled_charges_on_usage_invoices, subscriptions, spend_threshold_configuration, prepaid_balance_threshold_configuration, spend_trackers. Required: customer_id.
- **Create a Metronome contracts create** (Create). Create a new contract in Metronome that defines a customer's products, pricing, discounts, access duration, and billing configuration. Returns: id, contract. Required: customer_id, starting_at.
- **Create a Metronome contracts amend** (Create). Amend a Metronome contract by specifying a new starting date for the amendment to take effect. Returns: id. This endpoint is deprecated and will be replaced by the editContract endpoint; new clients should use that instead. Required: customer_id, contract_id, starting_at.
- **Create a Metronome contracts archive** (Create). Archive a contract in Metronome, permanently ending it along with all its terms, commits, and credits. Draft invoices are canceled and upcoming scheduled invoices are voided; finalized invoices can optionally be voided. Returns: id. Required: customer_id, contract_id, void_invoices.
- **Create a Metronome contracts set usage filter** (Create). Set a usage filter on a Metronome contract to route usage to the appropriate contract when a customer has multiple contracts with overlapping rates. Returns an empty response on success. The group_key must be defined on the billable metrics underlying the rate card on the contracts. Required: customer_id, contract_id, group_key, group_values, starting_at.
- **Create a Metronome contracts add manual balance ledger entry** (Create). Add a manual balance ledger entry to a commit or credit in Metronome, adjusting the available balance by a specified amount. The entry is appended to the commit ledger as a new event. Returns an empty 200 response on success. Required: customer_id, id, segment_id, amount, reason.
- **Update a Metronome contracts update invoice issue date by ID** (Update). Update the issue date of a DRAFT invoice within a Metronome contract without affecting future billing cycles or contract terms. Returns: id. Only works with invoices in DRAFT status, and the new issue date cannot be later than the contract's end date. Required: invoice_id, issue_date.
- **Update a Metronome contracts update end date by ID** (Update). Update or add an end date to a Metronome contract. Returns: id. Ending a contract early impacts draft usage statements, truncates any terms, and removes upcoming scheduled invoices; moving the date forward only extends the contract length and does not extend terms, scheduled invoices, or in-advance subscriptions. Required: customer_id, contract_id.
- **Metronome contracts get contract rate schedule** (Get). Get the rate schedule for a specific Metronome contract at a point in time, inclusive of rate card pricing and contract-level overrides. Returns: rate_card_id, product_id, product_name, product_tags, product_custom_fields, starting_at, ending_before, entitled, pricing_group_values, list_rate, override_rate, commit_rate, billing_frequency, rate_type, price, credit_type_id, id, customer_id,…. Required: customer_id, contract_id.
- **Metronome contracts get subscription quantity history** (Get). Get the history of subscription quantities and prices over time for a given subscription in Metronome. Returns: subscription_id, fiat_credit_type_id, history. Required: customer_id, contract_id, subscription_id.
- **Metronome contracts get subscription seats history** (Get). Get the history of subscription seat assignments and total quantities over time for a given subscription in Metronome. Returns: starting_at, ending_before, total_quantity, assigned_seat_ids. Maximum 10 entries per request; covering_date is mutually exclusive with starting_at and ending_before. Required: customer_id, contract_id, subscription_id.
- **Metronome contracts get named schedule** (Get). Get a named schedule for a specific Metronome contract by schedule name and optional covering date. Returns: value, starting_at, ending_before. Required: customer_id, contract_id, schedule_name.
- **Metronome contracts list named schedules** (List). List contract-level named schedules for a Metronome customer, optionally filtered by schedule name, properties, or covering date. Returns: contract_id, schedule_name, properties, segments. Required: customer_id.
- **Metronome contracts get edit history** (Get). Get the full edit history for a Metronome contract, listing every edit made over time through the UI, editContract, or other endpoints. Returns an array of edits, each with id, add_commits, and add_overrides detailing the specific changes made. Required: customer_id, contract_id.
- **Get single Metronome contract by ID** (Get). Get a single Metronome contract by customer and contract IDs, including rate card, commits, overrides, scheduled charges, and transitions. Returns: id, customer_id, package_id, uniqueness_key, name, salesforce_opportunity_id, rate_card_id, starting_at, commits, credits, has_more, overrides, discounts, professional_services, scheduled_charges, scheduled_charges_on_usage_invoices, transitions,…. Required: customer_id, contract_id.
- **List all Metronome contracts** (List). List all contracts for a Metronome customer in chronological order, optionally filtered by date range or archived status. Returns each contract with id, customer_id, rate_card_id, starting_at, commits, overrides, scheduled_charges, scheduled_charges_on_usage_invoices, transitions, usage_statement_schedule, created_at, created_by, custom_fields, usage_filter. starting_at and…. Required: customer_id.
- **Metronome subscriptions get status** (Get). Get the current payment and invoice status for a payment-gated subscription in Metronome. Returns: id, status, paid_quantity, latest_cycle_invoice, open_invoices, starting_at, ending_before, total_quantity, assigned_seat_ids. Required: customer_id, contract_id, subscription_id.
- **List all Metronome customer commits lists** (List). List all commit agreements (prepaid and postpaid) for a Metronome customer. Returns an array of Commit objects including id, type, rate_type, name, priority, product, access_schedule, invoice_schedule, ledger, and created_at. Max 25 commits per page. Required: customer_id.
- **Create a Metronome customer commits create** (Create). Create a customer-level commit in Metronome for cross-contract or enterprise-wide spending commitments (prepaid or postpaid). Returns: id. For most contract amendments, prefer contracts/edit instead of this endpoint. Required: customer_id, type, priority, product_id, access_schedule.
- **Update a Metronome customer commits update end date by ID** (Update). Update the end date of a prepaid Metronome customer commit, shortening its duration to terminate earlier than originally scheduled. Returns: id. Only works with prepaid commits and can only move the end date forward, not extend it; use the edit commit endpoint to extend or make other changes. Required: customer_id, commit_id.
- **Create a Metronome threshold billing release** (Create). Release or cancel a Metronome threshold billing commit pending an external payment gateway outcome by providing the workflow_id from the payment_gate.external_initiate webhook and the payment outcome. Returns an empty 200 response on success. Required: workflow_id, outcome.
- **Create a Metronome commits disable trueup** (Create). Disable the true-up invoice for a postpaid commit in Metronome so the final true-up invoice will not be generated. Returns: id. Required: customer_id, commit_id, contract_id.
- **List all Metronome customer credits lists** (List). List all credits available to a Metronome customer, including promotional and contract-specific credits. Returns: id, contract, type, name, priority, product, access_schedule, description, recurring_credit_id, subscription_config, applicable_product_ids, applicable_product_tags, specifiers, applicable_contract_ids, netsuite_sales_order_id, salesforce_opportunity_id, ledger, balance,…. Required: customer_id.
- **Create a Metronome customer credits create** (Create). Create a customer-level credit in Metronome to provision spending allowances or free credit balances usable across the customer's contracts. Returns: id. For most use cases, prefer adding credits directly to contracts via contract/create or contract/edit instead of this endpoint. Required: customer_id, priority, product_id, access_schedule.
- **Update a Metronome customer credits update end date by ID** (Update). Update the end date of a Metronome customer credit, shortening it to terminate earlier than originally scheduled. Returns: id. Only allows moving end dates forward (earlier), not extending them; use the edit credit endpoint to extend dates instead. Required: customer_id, credit_id, access_ending_before.
- **List all Metronome customer balances lists** (List). List all customer balances (commits and credits) in Metronome, providing real-time visibility into prepaid funds and promotional credits. Returns: id, type, rate_type, name, description, priority, product, rollover_fraction, applicable_product_ids, applicable_contract_ids, access_schedule, invoice_schedule, invoice_contract, ledger, uniqueness_key, created_at. Max 25 per…. Required: customer_id.
- **Metronome contracts customer balances get net balance** (Get). Get the net balance of a customer in Metronome by combining current balances across any grouping of credits and commits in a single call. Returns: balance, credit_type_id, id, current_billable_status. Balance filter objects are OR'd together; if access_type is set to QUANTITY, credit_type_id must not be provided. Required: customer_id.
- **List all Metronome seat balances lists** (List). List per-seat balance details for seat-based credits and commits in a Metronome contract, broken down by individual seats. Returns: seat_id, balances, commits, credits. covering_date is mutually exclusive with starting_at/effective_before; include_ledgers requires include_credits_and_commits=true. Required: customer_id, contract_id.
- **Create a Metronome contracts schedule pro services invoice** (Create). Schedule a Professional Services invoice for a Metronome contract. Returns the created invoices including id, customer_id, type, status, line_items, and total. Each line item requires an amount or both unit_price and quantity. Availability depends on client configuration. Required: customer_id, contract_id, issued_at, line_items.
- **Create a Metronome contracts create historical invoice** (Create). Create historical usage invoices for past billing periods on specific contracts in Metronome. Returns an array of invoice objects including id, customer_id, contract_id, type, status, total, and line_items. Supports preview mode to validate invoice data before creation. Required: invoices, preview.
- **Create a Metronome composite create customer with contract** (Create). Create a new Metronome customer and provision a contract in a single composite call. Returns: customer_id, ingest_aliases, customer_name, custom_fields, contract_id. This endpoint's availability is dependent on your client's configuration. Required: customer, contract.
- **Update a Metronome customers update named schedule by ID** (Update). Update a named schedule for a Metronome customer by setting a value over a specified date range. Returns an empty 200 response on success. This endpoint's availability is dependent on your client's configuration. Required: customer_id, schedule_name, starting_at, value.
- **Update a Metronome contracts update named schedule by ID** (Update). Update a named schedule for a contract in Metronome by setting a value over the specified date range. Returns: id. This endpoint's availability is dependent on your client's configuration. Required: customer_id, contract_id, schedule_name, starting_at, value.
- **Update a Metronome rate cards update named schedule by ID** (Update). Update a named schedule for a rate card in Metronome by setting a value over a specified date range. Returns: id. This endpoint's availability is dependent on your client's configuration. Required: rate_card_id, schedule_name, starting_at, value.
- **Update threshold billing update active recharge config by ID** (Update). Update a customer's active recharge or prepaid balance threshold config in Metronome. This unified API supports clients migrating customers from Metronome 1.0 to 2.0; a customer can only have one active config across all Plans or Contracts. Returns: id. The upstream request body schema (UpdateActiveRechargeConfig) is referenced but its individual fields are not documented in the available source. Required: customer_id.
- **Create a Metronome packages create** (Create). Create a package in Metronome defining reusable, time-relative contract terms for standard customer pricing. Returns: id. Packages cannot be edited once created; supported time-offset granularities are days, weeks, months, and years. Required: name.
- **Get single Metronome packages get by ID** (Get). Get details for a specific Metronome package including its name, commits, overrides, and scheduled charges. Returns: id, uniqueness_key, name, rate_card_id, aliases, duration, commits, credits, overrides, scheduled_charges, scheduled_charges_on_usage_invoices, created_at, created_by, net_payment_terms_days, usage_statement_schedule, multiplier_override_prioritization, billing_provider,…. Required: package_id.
- **List all Metronome packages lists** (List). List all packages in Metronome with full details including commits, overrides, and scheduled charges. Returns: id, uniqueness_key, name, rate_card_id, aliases, duration, commits, credits, overrides, scheduled_charges, scheduled_charges_on_usage_invoices, created_at, created_by, net_payment_terms_days, usage_statement_schedule, multiplier_override_prioritization, billing_provider, delivery_method,…
- **Create a Metronome packages archive** (Create). Archive a package in Metronome. Archived packages cannot be used to create new contracts, though existing contracts continue to function normally. Once archived, a package cannot be unarchived. Returns: id. Required: package_id.
- **Metronome packages list contracts on package** (List). List contracts associated with a Metronome package over a specific time period. Returns: customer_id, contract_id, starting_at, ending_before, archived_at. The starting_at and covering_date filters are mutually exclusive. Required: package_id.
- **Create a Metronome contracts edit** (Create). Edit a Metronome contract to encode mid-term commitment and discount changes or fix configuration mistakes. Returns: id, edit. Contract editing must be enabled to use this endpoint; draft invoices update immediately while finalized invoices must be voided and regenerated to reflect the edit. Required: customer_id, contract_id.
- **Create a Metronome commits edit** (Create). Edit a contract-level or customer-level commit in Metronome, modifying access schedules, invoice schedules, applicable products, invoicing contracts, or other fields. Returns: id. Draft invoices reflect edits immediately; finalized invoices are untouched unless voided and regenerated, and schedule items tied to finalized or voided invoices cannot be removed or…. Required: customer_id, commit_id.
- **Create a Metronome credits edit** (Create). Edit details for a contract-level or customer-level credit in Metronome, such as extending the duration or amount of a free credit or modifying access schedules. Returns: id. Draft invoices reflect edits immediately; finalized invoices are unaffected unless voided and regenerated, and access schedule segments applied to finalized invoices cannot be removed. Required: customer_id, credit_id.
- **Create a Metronome commits archive** (Create). Archive a contract-level or customer-level commit in Metronome, deactivating it while preserving historical records. Returns: id. All finalized usage invoices the commit was applied to and finalized commit payment invoices must be voided before archiving. Required: customer_id, commit_id.
- **Create a Metronome credits archive** (Create). Archive a contract-level or customer-level credit in Metronome. Returns: id. The credit cannot be archived until all finalized invoices it was applied to are voided; once archived it has a null ledger and 0 remaining balance. Required: customer_id, credit_id.
- **Create a Metronome commits move to history** (Create). Move one or more fully depleted, immutable commits on a Metronome contract to historical storage, removing them from active code paths while keeping them retrievable through the historical view. Returns: historical_count, historical_commit_ids, skipped_count, skipped_reasons. Required: customer_id, contract_id, commit_ids.
- **Create a Metronome notifications create** (Create). Create an offset lifecycle event notification configuration in Metronome. The lifecycle event type is inferred from the policy.type field. Returns: id, name, type, policy, environment_type, created_at, created_by, archived_at. Required: name, policy.
- **Get single Metronome notifications get by ID** (Get). Get a specific offset lifecycle event notification configuration in Metronome by ID. Returns: id, name, type, policy, environment_type, created_at, created_by, archived_at. Required: id.
- **List all Metronome offset lists** (List). List offset lifecycle event notification configurations in Metronome — user-created notifications that trigger at a specified time offset relative to lifecycle events. Returns: id, name, type, policy, environment_type, created_at, created_by, archived_at. Returns a maximum of 400 results per request.
- **List all Metronome system lists** (List). List available system lifecycle event types for notifications in Metronome. These are read-only event types usable when creating offset notifications. Returns: type, is_enabled, policy.type.
- **Create a Metronome notifications edit** (Create). Edit an existing offset lifecycle event notification configuration in Metronome. Returns the updated configuration with id, name, type, policy, environment_type, created_at, created_by, and archived_at. Required: policy.
- **Create a Metronome notifications archive** (Create). Archive an offset lifecycle event notification configuration in Metronome. Archived notifications are not processed. Returns the configuration object including id, name, type, policy, environment_type, created_at, created_by, and archived_at. Required: id.
