> ## Documentation Index
> Fetch the complete documentation index at: https://docs.octavehq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Log Event

>  Log emails, calls, CRM, and social data from custom integrations (n8n, Clay, Make, etc.).

## Event Types
The `{eventType}` path parameter determines the expected payload schema. Each event type has its own set of supported sub-types:

### `emails` — Email Events
Supported `eventType` values: `sent`, `reply`, `opened`, `clicked`, `bounced`, `unsubscribed`
- Only **`sent`** and **`reply`** are processed for analytics; others are ingested but not processed.
- Required fields: `eventTimestamp`, `eventType`, `subject`, `body` (text or html), `from`, `to`
- Optional: `cc`, `bcc`, `eventId`, `conversationId`, `campaignId`, `customMetadata`

### `calls` — Call/Meeting Events
Supported `eventType` values: `transcript`, `scheduled`, `completed`, `missed`
- Only **`transcript`** is processed for analytics; others are ingested but not processed.
- Required fields: `eventTimestamp`, `eventType`, `title`, `transcript`, `participants`
- Optional: `duration`, `recordingUrl`, `meetingPlatform`, `eventId`, `conversationId`, `customMetadata`
- **Transcript formats:** Can be a flat string (LLM will diarize into speaker turns) or a structured array of entries with speaker attribution (recommended — faster and more reliable).

### `crm` — CRM Events
Supported `eventType` values: `opportunity_created`, `deal_won`, `deal_lost`, `meeting_booked`
- All CRM event types are processed for analytics.
- Required fields: `eventTimestamp`, `eventType`, `opportunityId`, `opportunityName`
- Optional: `amount`, `stage`, `accountName`, `contactEmail`, `contactName`, `closeDate`, `customMetadata`

### `social` — Social/LinkedIn Events
Supported `eventType` values: `connection_sent`, `connection_accepted`, `message_sent`, `message_received`
- All social event types are processed for analytics.
- Required fields: `eventTimestamp`, `eventType`, `body` (text or html), `from`, `to`
- Optional: `subject`, `eventId`, `conversationId`, `campaignId`, `messageType`, `campaignName`, `customMetadata`

## Deduplication
You can provide an optional `eventId` field for explicit deduplication. If not provided, an ID is auto-generated from the event content:
- **Emails:** `from_email + subject + timestamp + first_to_email`
- **Calls:** `title + timestamp + first_participant + first_100_chars_transcript`
- **CRM:** `opportunityId + eventType`
- **Social:** auto-generated from content

## Authentication
Workspace is identified by API key, passed as a query parameter (`api_key`) or in the request header.




## OpenAPI

````yaml post /api/v2/analytics/webhook/receive/generic/{eventType}
openapi: 3.0.0
info:
  version: 1.0.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/analytics/webhook/receive/generic/{eventType}:
    post:
      tags:
        - Analytics
        - Webhooks
      summary: Receive generic webhook events
      description: >-
        Receive webhook events for emails, calls, CRM, and social data from
        custom integrations (n8n, Clay, Make, etc.).


        ## Event Types


        The `{eventType}` path parameter determines the expected payload schema.
        Each event type has its own set of supported sub-types:


        ### `emails` — Email Events


        Supported `eventType` values: `sent`, `reply`, `opened`, `clicked`,
        `bounced`, `unsubscribed`


        - Only **`sent`** and **`reply`** are processed for analytics; others
        are ingested but not processed.

        - Required fields: `eventTimestamp`, `eventType`, `subject`, `body`
        (text or html), `from`, `to`

        - Optional: `cc`, `bcc`, `eventId`, `conversationId`, `campaignId`,
        `customMetadata`


        ### `calls` — Call/Meeting Events


        Supported `eventType` values: `transcript`, `scheduled`, `completed`,
        `missed`


        - Only **`transcript`** is processed for analytics; others are ingested
        but not processed.

        - Required fields: `eventTimestamp`, `eventType`, `title`, `transcript`,
        `participants`

        - Optional: `duration`, `recordingUrl`, `meetingPlatform`, `eventId`,
        `conversationId`, `customMetadata`

        - **Transcript formats:** Can be a flat string (LLM will diarize into
        speaker turns) or a structured array of entries with speaker attribution
        (recommended — faster and more reliable).


        ### `crm` — CRM Events


        Supported `eventType` values: `opportunity_created`, `deal_won`,
        `deal_lost`, `meeting_booked`


        - All CRM event types are processed for analytics.

        - Required fields: `eventTimestamp`, `eventType`, `opportunityId`,
        `opportunityName`

        - Optional: `amount`, `stage`, `accountName`, `contactEmail`,
        `contactName`, `closeDate`, `customMetadata`


        ### `social` — Social/LinkedIn Events


        Supported `eventType` values: `connection_sent`, `connection_accepted`,
        `message_sent`, `message_received`


        - All social event types are processed for analytics.

        - Required fields: `eventTimestamp`, `eventType`, `body` (text or html),
        `from`, `to`

        - Optional: `subject`, `eventId`, `conversationId`, `campaignId`,
        `messageType`, `campaignName`, `customMetadata`


        ## Deduplication


        You can provide an optional `eventId` field for explicit deduplication.
        If not provided, an ID is auto-generated from the event content:


        - **Emails:** `from_email + subject + timestamp + first_to_email`

        - **Calls:** `title + timestamp + first_participant +
        first_100_chars_transcript`

        - **CRM:** `opportunityId + eventType`

        - **Social:** auto-generated from content


        ## Authentication


        Workspace is identified by API key, passed as a query parameter
        (`api_key`) or in the request header.
      operationId: receiveGenericWebhook
      parameters:
        - schema:
            type: string
            enum:
              - emails
              - calls
              - crm
              - social
            description: Type of event being sent
            example: emails
          required: true
          name: eventType
          in: path
        - schema:
            type: string
            description: Provide api key if not in header
          required: false
          name: api_key
          in: query
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - allOf:
                    - $ref: '#/components/schemas/GenericEmailEvent'
                    - title: Email Event
                      example:
                        eventTimestamp: '2024-02-03T10:30:00Z'
                        eventType: sent
                        subject: Follow up on our conversation
                        body:
                          text: >-
                            Hi John, Just wanted to follow up on our call
                            yesterday...
                          html: >-
                            <p>Hi John,</p><p>Just wanted to follow up on our
                            call yesterday...</p>
                        from:
                          email: sarah@company.com
                          name: Sarah Johnson
                        to:
                          - email: john@prospect.com
                            name: John Smith
                        conversationId: conv_abc123
                        campaignId: campaign_xyz
                - allOf:
                    - $ref: '#/components/schemas/GenericCallEvent'
                    - title: Call Event
                      example:
                        eventTimestamp: '2024-02-03T14:00:00Z'
                        eventType: transcript
                        title: Discovery Call - Acme Corp
                        transcript:
                          - speaker:
                              name: Sarah Johnson
                              email: sarah@company.com
                              role: internal
                            text: >-
                              Hi John, thanks for taking the time today. How are
                              you doing?
                            timestamp: '00:00:05'
                          - speaker:
                              name: John Smith
                              email: john@prospect.com
                              role: external
                            text: >-
                              Good, thanks! Yeah, I was excited to learn more
                              about what you all do.
                            timestamp: '00:00:12'
                          - speaker:
                              name: Sarah Johnson
                              email: sarah@company.com
                              role: internal
                            text: >-
                              Great! So I'd love to start by understanding a bit
                              about your current setup...
                            timestamp: '00:00:20'
                        participants:
                          - email: sarah@company.com
                            name: Sarah Johnson
                            role: internal
                          - email: john@prospect.com
                            name: John Smith
                            role: external
                        duration: 1800
                        meetingPlatform: zoom
                - allOf:
                    - $ref: '#/components/schemas/GenericCrmEvent'
                    - title: CRM Event
                      example:
                        eventTimestamp: '2024-02-03T16:00:00Z'
                        eventType: opportunity_created
                        opportunityId: opp_12345
                        opportunityName: Acme Corp - Enterprise Plan
                        amount: 50000
                        stage: Qualification
                        accountName: Acme Corp
                        contactEmail: john@acme.com
                        contactName: John Smith
                        closeDate: '2024-03-31T00:00:00Z'
                - allOf:
                    - $ref: '#/components/schemas/GenericSocialEvent'
                    - title: Social Event
                      example:
                        eventTimestamp: '2024-02-03T11:00:00Z'
                        eventType: message_sent
                        subject: Introduction
                        body:
                          text: >-
                            Hi John, I came across your profile and would love
                            to connect.
                        from:
                          email: sarah@company.com
                          name: Sarah Johnson
                        to:
                          - email: john@prospect.com
                            name: John Smith
                        conversationId: conv_social_abc123
                        campaignId: campaign_linkedin_1
                        messageType: message
                        campaignName: Q1 Outreach
              description: >-
                Webhook payload. The schema depends on the `{eventType}` path
                parameter:

                - `emails` — Email Event schema

                - `calls` — Call Event schema

                - `crm` — CRM Event schema

                - `social` — Social Event schema (LinkedIn/social outreach)
              oneOf:
                - $ref: '#/components/schemas/GenericEmailEvent'
                  title: Email Event
                - $ref: '#/components/schemas/GenericCallEvent'
                  title: Call Event
                - $ref: '#/components/schemas/GenericCrmEvent'
                  title: CRM Event
                - $ref: '#/components/schemas/GenericSocialEvent'
                  title: Social Event
            examples:
              Email Event:
                summary: Send an email event
                value:
                  eventTimestamp: '2024-02-03T10:30:00Z'
                  eventType: sent
                  subject: Follow up on our conversation
                  body:
                    text: Hi John, Just wanted to follow up on our call yesterday...
                    html: >-
                      <p>Hi John,</p><p>Just wanted to follow up on our call
                      yesterday...</p>
                  from:
                    email: sarah@company.com
                    name: Sarah Johnson
                  to:
                    - email: john@prospect.com
                      name: John Smith
                  conversationId: conv_abc123
                  campaignId: campaign_xyz
              Call Event (flat transcript):
                summary: >-
                  Call with flat text transcript — LLM will diarize into speaker
                  turns
                value:
                  eventTimestamp: '2024-02-03T14:00:00Z'
                  eventType: transcript
                  title: Discovery Call - Acme Corp
                  transcript: >-
                    Sarah: Hi John, thanks for taking the time. John: Of course,
                    happy to chat about your current setup...
                  participants:
                    - email: sarah@company.com
                      name: Sarah Johnson
                      role: internal
                    - email: john@prospect.com
                      name: John Smith
                      role: external
                  duration: 1800
                  meetingPlatform: zoom
              Call Event (structured transcript):
                summary: >-
                  Call with structured transcript entries — recommended, faster
                  and more reliable
                value:
                  eventTimestamp: '2024-02-03T14:00:00Z'
                  eventType: transcript
                  title: Discovery Call - Acme Corp
                  transcript:
                    - speaker:
                        name: Sarah Johnson
                        email: sarah@company.com
                        role: internal
                      text: >-
                        Hi John, thanks for taking the time today. How are you
                        doing?
                      timestamp: '00:00:05'
                    - speaker:
                        name: John Smith
                        email: john@prospect.com
                        role: external
                      text: >-
                        Good, thanks! Yeah, I was excited to learn more about
                        what you all do.
                      timestamp: '00:00:12'
                    - speaker:
                        name: Sarah Johnson
                        email: sarah@company.com
                        role: internal
                      text: >-
                        Great! So I'd love to start by understanding a bit about
                        your current setup...
                      timestamp: '00:00:20'
                  participants:
                    - email: sarah@company.com
                      name: Sarah Johnson
                      role: internal
                    - email: john@prospect.com
                      name: John Smith
                      role: external
                  duration: 1800
                  meetingPlatform: zoom
              CRM Event:
                summary: Send a CRM opportunity event
                value:
                  eventTimestamp: '2024-02-03T16:00:00Z'
                  eventType: opportunity_created
                  opportunityId: opp_12345
                  opportunityName: Acme Corp - Enterprise Plan
                  amount: 50000
                  stage: Qualification
                  accountName: Acme Corp
                  contactEmail: john@acme.com
                  contactName: John Smith
                  closeDate: '2024-03-31T00:00:00Z'
              Social Event:
                summary: Send a LinkedIn/social outreach event
                value:
                  eventTimestamp: '2024-02-03T11:00:00Z'
                  eventType: message_sent
                  subject: Introduction
                  body:
                    text: >-
                      Hi John, I came across your profile and would love to
                      connect.
                  from:
                    email: sarah@company.com
                    name: Sarah Johnson
                  to:
                    - email: john@prospect.com
                      name: John Smith
                  conversationId: conv_social_abc123
                  campaignId: campaign_linkedin_1
                  messageType: message
                  campaignName: Q1 Outreach
      responses:
        '200':
          description: Webhook received successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  received:
                    type: boolean
                    description: Whether the payload was received
                  additionalData:
                    type: object
                    additionalProperties:
                      nullable: true
                    description: Additional data about the processed event
                  validationErrors:
                    type: object
                    properties:
                      fieldErrors:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: string
                      formErrors:
                        type: array
                        items:
                          type: string
                    required:
                      - fieldErrors
                      - formErrors
                    description: >-
                      Per-field validation errors when the payload fails schema
                      validation. Mirrors Zod's flatten() output so callers can
                      map errors back to the offending fields.
                  connection:
                    type: object
                    nullable: true
                    properties:
                      providerName:
                        type: string
                        enum:
                          - INSTANTLY
                          - FATHOM
                          - AMPERSAND_HUBSPOT
                          - AMPERSAND_SALESFORCE
                          - SMARTLEAD
                          - EMAILBISON
                          - FIREFLIES
                          - GONG
                          - CHORUS
                          - ORUM
                          - SALESFINITY
                          - OUTREACH
                          - OCTAVE_RESOURCES
                          - OCTAVE_REVISIONS
                          - SUPERSEND
                          - OCTAVE_GENERIC_EMAIL
                          - OCTAVE_GENERIC_CALL
                          - OCTAVE_GENERIC_CRM
                          - OCTAVE_GENERIC_SOCIAL
                          - CIRCLEBACK
                          - SYBILL
                          - GRANOLA
                          - SALESLOFT
                          - HEYREACH
                          - GOOGLE_ADS
                          - META_ADS
                        description: Provider name for this event type
                      shouldProcess:
                        type: boolean
                        description: Whether the payload should be processed
                      connectionMethod:
                        type: string
                        enum:
                          - WEBHOOK
                          - CRON_JOB
                        description: Connection method
                    required:
                      - providerName
                      - shouldProcess
                      - connectionMethod
                    description: Connection details
                required:
                  - _metadata
                  - received
                  - connection
        '400':
          description: Bad request - invalid payload or event type
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
        '404':
          description: Workspace not found or invalid API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
      deprecated: false
components:
  schemas:
    GenericEmailEvent:
      type: object
      properties:
        eventTimestamp:
          anyOf:
            - type: string
            - type: number
          description: >-
            Timestamp of the event. Accepts an ISO 8601 string (e.g.,
            "2024-02-03T10:30:00Z"), a Unix epoch in milliseconds (>= 1e12), or
            a Unix epoch in seconds. Must resolve to a date within 50 years past
            or 5 years future.
          example: '2024-02-03T10:30:00Z'
        eventType:
          type: string
          enum:
            - sent
            - reply
            - opened
            - clicked
            - bounced
            - unsubscribed
          description: >-
            Type of email event. Only 'sent' and 'reply' are processed for
            analytics; others are ingested but not processed.
        subject:
          type: string
          description: Email subject line
          example: Follow up on our conversation
        body:
          type: object
          properties:
            text:
              type: string
              description: Plain text body
            html:
              type: string
              description: HTML body
          description: Email body. At least one of text or html must be provided.
        from:
          type: object
          properties:
            email:
              type: string
              format: email
              example: sender@company.com
            name:
              type: string
              example: Sarah Johnson
          required:
            - email
          description: Sender
        to:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                format: email
                example: recipient@prospect.com
              name:
                type: string
                example: John Smith
            required:
              - email
          minItems: 1
          description: Recipients (at least one required)
        cc:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                format: email
              name:
                type: string
            required:
              - email
          description: CC recipients
        bcc:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                format: email
              name:
                type: string
            required:
              - email
          description: BCC recipients
        eventId:
          type: string
          description: >-
            Explicit event ID for deduplication. If not provided, auto-generated
            from: from_email + subject + timestamp + first_to_email
          example: deal-001-email-sent-1
        conversationId:
          type: string
          description: Conversation/thread ID for grouping related emails
        campaignId:
          type: string
          description: Campaign ID for grouping campaign emails
        octaveRequestId:
          type: string
          description: Octave request ID for tracking
        customMetadata:
          type: object
          additionalProperties:
            nullable: true
          description: Arbitrary key-value metadata
      required:
        - eventTimestamp
        - eventType
        - subject
        - body
        - from
        - to
    GenericCallEvent:
      type: object
      properties:
        eventTimestamp:
          anyOf:
            - type: string
            - type: number
          description: >-
            Timestamp of the event. Accepts an ISO 8601 string (e.g.,
            "2024-02-03T10:30:00Z"), a Unix epoch in milliseconds (>= 1e12), or
            a Unix epoch in seconds. Must resolve to a date within 50 years past
            or 5 years future.
          example: '2024-02-03T14:00:00Z'
        eventType:
          type: string
          enum:
            - transcript
            - scheduled
            - completed
            - missed
          description: >-
            Type of call event. Only 'transcript' is processed for analytics;
            others are ingested but not processed.
        title:
          type: string
          description: Call/meeting title
          example: Discovery Call - Acme Corp
        transcript:
          anyOf:
            - type: string
              minLength: 1
              description: Flat text transcript (will use LLM diarization)
            - type: array
              items:
                type: object
                properties:
                  speaker:
                    type: object
                    properties:
                      name:
                        type: string
                        example: Sarah Johnson
                      email:
                        type: string
                        format: email
                        example: sarah@company.com
                      role:
                        type: string
                        enum:
                          - internal
                          - external
                        description: >-
                          'internal' for your team, 'external' for
                          prospects/customers
                    required:
                      - name
                  text:
                    type: string
                    example: Hi John, thanks for taking the time today.
                  timestamp:
                    type: string
                    description: Timestamp offset (ISO 8601 or seconds from start)
                    example: '00:00:05'
                required:
                  - speaker
                  - text
              minItems: 1
              description: >-
                Structured transcript entries with speaker attribution
                (recommended — no LLM needed)
          description: >-
            Transcript content. Either a flat string (LLM diarizes into speaker
            turns) or a structured array of entries with speaker attribution
            (recommended, faster and more reliable).
        participants:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                format: email
                example: sarah@company.com
              name:
                type: string
                example: Sarah Johnson
              role:
                type: string
                enum:
                  - internal
                  - external
            required:
              - name
          minItems: 1
          description: Call participants (at least one required)
        duration:
          type: number
          description: Call duration in seconds
          example: 1800
        recordingUrl:
          type: string
          format: uri
          description: URL to the call recording
        meetingPlatform:
          type: string
          description: Meeting platform (e.g., 'zoom', 'teams', 'meet')
          example: zoom
        eventId:
          type: string
          description: >-
            Explicit event ID for deduplication. If not provided, auto-generated
            from: title + timestamp + first_participant +
            first_100_chars_transcript
          example: deal-001-call-discovery
        conversationId:
          type: string
          description: Conversation ID for grouping related calls
        customMetadata:
          type: object
          additionalProperties:
            nullable: true
          description: Arbitrary key-value metadata
      required:
        - eventTimestamp
        - eventType
        - title
        - transcript
        - participants
    GenericCrmEvent:
      type: object
      properties:
        eventTimestamp:
          anyOf:
            - type: string
            - type: number
          description: >-
            Timestamp of the event. Accepts an ISO 8601 string (e.g.,
            "2024-02-03T10:30:00Z"), a Unix epoch in milliseconds (>= 1e12), or
            a Unix epoch in seconds. Must resolve to a date within 50 years past
            or 5 years future.
          example: '2024-02-03T16:00:00Z'
        eventType:
          type: string
          enum:
            - opportunity_created
            - deal_won
            - deal_lost
            - meeting_booked
          description: Type of CRM event
        eventId:
          type: string
          description: >-
            Explicit event ID for deduplication. If not provided, auto-generated
            from: opportunityId + eventType
        opportunityId:
          type: string
          description: External opportunity/deal ID
          example: opp_12345
        opportunityName:
          type: string
          description: Name of the opportunity/deal
          example: Acme Corp - Enterprise Plan
        amount:
          type: number
          description: Deal amount
          example: 50000
        stage:
          type: string
          description: Deal stage
          example: Qualification
        accountName:
          type: string
          description: Account/company name
          example: Acme Corp
        contactEmail:
          type: string
          format: email
          description: Primary contact email
          example: john@acme.com
        contactName:
          type: string
          description: Primary contact name
          example: John Smith
        closeDate:
          anyOf:
            - type: string
            - type: number
          description: >-
            Expected close date. Accepts an ISO 8601 string (e.g.,
            "2024-03-31T00:00:00Z"), a Unix epoch in milliseconds (>= 1e12), or
            a Unix epoch in seconds. Must resolve to a date within 50 years past
            or 5 years future.
          example: '2024-03-31T00:00:00Z'
        customMetadata:
          type: object
          additionalProperties:
            nullable: true
          description: Arbitrary key-value metadata
      required:
        - eventTimestamp
        - eventType
        - opportunityId
        - opportunityName
    GenericSocialEvent:
      type: object
      properties:
        eventTimestamp:
          anyOf:
            - type: string
            - type: number
          description: >-
            Timestamp of the event. Accepts an ISO 8601 string (e.g.,
            "2024-02-03T10:30:00Z"), a Unix epoch in milliseconds (>= 1e12), or
            a Unix epoch in seconds. Must resolve to a date within 50 years past
            or 5 years future.
          example: '2024-02-03T11:00:00Z'
        eventType:
          type: string
          enum:
            - connection_sent
            - connection_accepted
            - message_sent
            - message_received
          description: >-
            Type of social event (LinkedIn/social outreach). All types are
            processed for analytics.
        body:
          type: object
          properties:
            text:
              type: string
              description: Plain text body
            html:
              type: string
              description: HTML body
          description: Message body. At least one of text or html must be provided.
        from:
          type: object
          properties:
            email:
              type: string
              format: email
              example: sender@company.com
            name:
              type: string
              example: Sarah Johnson
          required:
            - email
          description: Sender
        to:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
                format: email
                example: recipient@prospect.com
              name:
                type: string
                example: John Smith
            required:
              - email
          minItems: 1
          description: Recipients (at least one required)
        subject:
          type: string
          description: Subject or topic of the message
        eventId:
          type: string
          description: Explicit event ID for deduplication
        conversationId:
          type: string
          description: Conversation/thread ID for grouping related messages
        campaignId:
          type: string
          description: Campaign ID for grouping
        messageType:
          type: string
          description: Message type (e.g. message, inmail, connection_request)
        campaignName:
          type: string
          description: Campaign name
        octaveRequestId:
          type: string
          description: Octave request ID for tracking
        customMetadata:
          type: object
          additionalProperties:
            nullable: true
          description: Arbitrary key-value metadata
      required:
        - eventTimestamp
        - eventType
        - body
        - from
        - to
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          description: API usage
          example: 0
        requestId:
          type: string
          description: Request ID
          example: requestId
        message:
          type: string
          description: Message
          example: message
        timestamp:
          type: string
          description: Timestamp
          example: '2021-01-01T00:00:00.000Z'
      required:
        - requestId
        - timestamp
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````