New Relic Log API

The New Relic Log API enables log data to be sent directly to the New Relic platform via HTTP POST requests. It accepts compressed JSON payloads and provides an alternative to log forwarding agents when direct integration is preferred.

OpenAPI Specification

new-relic-log-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: New Relic Log API
  description: >-
    The New Relic Log API enables log data to be sent directly to the New Relic
    platform via HTTP POST requests. It accepts gzip-compressed JSON payloads and
    provides an alternative to log forwarding agents when direct integration is
    preferred. Logs are available for querying in New Relic Logs UI and via NRQL
    immediately after ingestion.
  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 Log API Documentation
  url: https://docs.newrelic.com/docs/logs/log-api/introduction-log-api/
servers:
- url: https://log-api.newrelic.com
  description: US Production
- url: https://log-api.eu.newrelic.com
  description: EU Production
tags:
- name: Logs
  description: Log data ingestion endpoints
security:
- apiKey: []
paths:
  /log/v1:
    post:
      operationId: sendLogs
      summary: New Relic Send Log Data
      description: >-
        Sends one or more log records to the New Relic Log API. Accepts a JSON
        array of log data objects, each containing a logs array and optional
        common attributes. Payloads must be gzip-compressed. A single request
        may not exceed 1 MB compressed or 10,000 log entries.
      tags:
      - Logs
      parameters:
      - name: Content-Encoding
        in: header
        required: true
        description: Compression encoding. Gzip is required.
        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/LogPayload'
            example:
            - common:
                attributes:
                  logtype: nginx
                  service.name: myService
                  host.name: web01
              logs:
              - timestamp: 1645564509000
                message: 127.0.0.1 - - [01/Jan/2022] "GET /api/health HTTP/1.1" 200 24
                level: INFO
              - timestamp: 1645564510000
                message: 127.0.0.1 - - [01/Jan/2022] "POST /api/orders HTTP/1.1" 500 0
                level: ERROR
      responses:
        '202':
          description: Accepted. Log data was received and queued for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
              examples:
                Sendlogs202Example:
                  summary: Default sendLogs 202 response
                  x-microcks-default: true
                  value:
                    requestId: '500123'
        '400':
          description: Bad request. Payload is malformed or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Sendlogs400Example:
                  summary: Default sendLogs 400 response
                  x-microcks-default: true
                  value:
                    requestId: '500123'
                    error: &id001
                      type: standard
                      message: Operation completed successfully
        '403':
          description: Forbidden. The API key is invalid or lacks insert permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Sendlogs403Example:
                  summary: Default sendLogs 403 response
                  x-microcks-default: true
                  value:
                    requestId: '500123'
                    error: *id001
        '413':
          description: Payload too large. Exceeds 1 MB compressed limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Sendlogs413Example:
                  summary: Default sendLogs 413 response
                  x-microcks-default: true
                  value:
                    requestId: '500123'
                    error: *id001
        '429':
          description: Too many requests. Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Sendlogs429Example:
                  summary: Default sendLogs 429 response
                  x-microcks-default: true
                  value:
                    requestId: '500123'
                    error: *id001
      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
  schemas:
    LogPayload:
      type: array
      description: Array of log data batch objects
      items:
        $ref: '#/components/schemas/LogDataObject'
    LogDataObject:
      type: object
      description: A batch of log records with optional shared attributes
      required:
      - logs
      properties:
        common:
          $ref: '#/components/schemas/CommonBlock'
        logs:
          type: array
          description: Array of individual log records
          items:
            $ref: '#/components/schemas/LogRecord'
          example:
          - timestamp: 1718153645993
            message: Operation completed successfully
            level: FATAL
            logtype: standard
            attributes:
              customAttribute: example_value
    CommonBlock:
      type: object
      description: Shared attributes applied to all log records in this batch
      properties:
        timestamp:
          type: integer
          description: Default Unix timestamp in milliseconds for all logs in the batch
          example: 1718153645993
        attributes:
          type: object
          description: Key-value attributes applied to all logs in this batch
          additionalProperties:
            oneOf:
            - type: string
            - type: number
            - type: boolean
          example:
            customAttribute: example_value
    LogRecord:
      type: object
      description: A single log record
      properties:
        timestamp:
          type: integer
          description: Unix epoch timestamp in milliseconds when the log event occurred
          example: 1718153645993
        message:
          type: string
          description: The log message text
          maxLength: 32768
          example: Operation completed successfully
        level:
          type: string
          description: Log severity level
          enum:
          - FATAL
          - ERROR
          - WARN
          - WARNING
          - INFO
          - DEBUG
          - TRACE
          example: FATAL
        logtype:
          type: string
          description: Log format type for automatic parsing (e.g., nginx, apache, syslog)
          example: standard
        attributes:
          type: object
          description: Additional key-value attributes for this log record
          additionalProperties:
            oneOf:
            - type: string
            - type: number
            - type: boolean
          example:
            customAttribute: example_value
      additionalProperties:
        description: Additional top-level attributes are accepted and stored
    AcceptedResponse:
      type: object
      description: Response when the payload was accepted
      properties:
        requestId:
          type: string
          description: Unique identifier for the accepted ingestion request
          example: '500123'
    ErrorResponse:
      type: object
      description: Error response
      properties:
        requestId:
          type: string
          example: '500123'
        error:
          type: object
          properties:
            type:
              type: string
            message:
              type: string
          example: *id001