openapi: 3.1.0 info: title: New Relic Metric API description: >- The New Relic Metric API is an HTTP endpoint for ingesting dimensional metric data directly into the New Relic platform. It accepts JSON payloads via POST requests compressed with gzip and is the underlying API used by Telemetry SDKs and open source exporters such as Prometheus and DropWizard. Metrics are sent as arrays of metric data points with attributes, timestamps, and interval values. version: '1' contact: name: New Relic Support url: https://support.newrelic.com/ termsOfService: https://newrelic.com/termsandconditions/terms x-last-validated: '2026-04-18' externalDocs: description: New Relic Metric API Documentation url: https://docs.newrelic.com/docs/data-apis/ingest-apis/metric-api/introduction-metric-api/ servers: - url: https://metric-api.newrelic.com description: US Production - url: https://metric-api.eu.newrelic.com description: EU Production tags: - name: Metrics description: Metric data ingestion endpoints security: - apiKey: [] paths: /metric/v1: post: operationId: sendMetrics summary: New Relic Send Metric Data description: >- Sends an array of metric data points to the New Relic Metric API. The request body must be a JSON array of metric data objects, each containing a metrics array and optional common attributes. Payloads should be gzip-compressed for best performance. The API supports count, gauge, and summary metric types. tags: - Metrics parameters: - $ref: '#/components/parameters/ApiKey' - name: Content-Encoding in: header description: Compression encoding. Use gzip for compressed payloads. schema: type: string enum: - gzip example: gzip - name: Content-Type in: header required: true schema: type: string enum: - application/json example: application/json requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MetricPayload' example: - common: timestamp: 1531414060739 interval.ms: 10000 attributes: host.name: host1 service.name: myService metrics: - name: cpu.usage.percent type: gauge value: 12.3 - name: http.requests type: count value: 420 interval.ms: 10000 responses: '202': description: Accepted. The data was received and queued for processing. content: application/json: schema: $ref: '#/components/schemas/AcceptedResponse' examples: Sendmetrics202Example: summary: Default sendMetrics 202 response x-microcks-default: true value: requestId: '500123' '400': description: Bad request. The payload is malformed or exceeds size limits. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Sendmetrics400Example: summary: Default sendMetrics 400 response x-microcks-default: true value: error: &id001 type: standard message: Operation completed successfully failures: &id002 - error: message: Operation completed successfully failed: - {} '403': description: Forbidden. The API key is invalid or does not have insert permissions. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Sendmetrics403Example: summary: Default sendMetrics 403 response x-microcks-default: true value: error: *id001 failures: *id002 '413': description: Payload too large. The request body exceeds the 1 MB limit. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Sendmetrics413Example: summary: Default sendMetrics 413 response x-microcks-default: true value: error: *id001 failures: *id002 '429': description: Too many requests. The rate limit has been exceeded. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Sendmetrics429Example: summary: Default sendMetrics 429 response x-microcks-default: true value: error: *id001 failures: *id002 x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: apiKey: type: apiKey in: header name: Api-Key description: New Relic License Key or Ingest API Key parameters: ApiKey: name: Api-Key in: header required: true description: New Relic License Key or Ingest API Key with Insert permissions schema: type: string schemas: MetricPayload: type: array description: An array of metric data objects to be ingested items: $ref: '#/components/schemas/MetricDataObject' MetricDataObject: type: object description: A container for a batch of metrics with optional shared attributes properties: common: $ref: '#/components/schemas/CommonBlock' metrics: type: array description: Array of individual metric data points items: $ref: '#/components/schemas/MetricDataPoint' example: - name: example-resource-01 type: gauge value: 42.5 timestamp: 1718153645993 interval.ms: 100 attributes: customAttribute: example_value required: - metrics CommonBlock: type: object description: >- Shared attributes applied to all metrics in this data object unless overridden at the metric level properties: timestamp: type: integer description: Unix timestamp in milliseconds for all metrics in this batch example: 1718153645993 interval.ms: type: integer description: Default measurement interval in milliseconds for count and summary metrics example: 100 attributes: type: object description: >- Key-value pairs applied to all metrics in the batch. Values can be strings, numbers, or booleans. additionalProperties: oneOf: - type: string - type: number - type: boolean example: customAttribute: example_value MetricDataPoint: type: object description: A single metric data point required: - name - type - value properties: name: type: string description: The metric name (e.g., cpu.usage.percent) maxLength: 255 example: example-resource-01 type: type: string description: The metric type enum: - gauge - count - summary example: gauge value: description: >- The metric value. For gauge and count, a number. For summary, an object with count, sum, min, and max fields. oneOf: - type: number - $ref: '#/components/schemas/SummaryValue' example: 42.5 timestamp: type: integer description: >- Unix timestamp in milliseconds. Overrides the common timestamp for this metric. example: 1718153645993 interval.ms: type: integer description: Measurement interval in milliseconds. Required for count and summary types. example: 100 attributes: type: object description: Additional key-value attributes for this metric point additionalProperties: oneOf: - type: string - type: number - type: boolean example: customAttribute: example_value SummaryValue: type: object description: Summary metric value containing statistical aggregations required: - count - sum - min - max properties: count: type: number description: The number of measurements in this summary example: 42.5 sum: type: number description: The sum of all measurement values example: 42.5 min: type: number description: The minimum measurement value example: 42.5 max: type: number description: The maximum measurement value example: 42.5 AcceptedResponse: type: object description: Response returned when the payload was accepted properties: requestId: type: string description: Unique identifier for the accepted request example: '500123' ErrorResponse: type: object description: Error response body properties: error: type: object properties: type: type: string description: Error type identifier message: type: string description: Human-readable error description example: *id001 failures: type: array description: List of individual failure details when partial rejection occurs items: type: object properties: error: type: object properties: message: type: string failed: type: array items: type: object example: *id002