Insider One Analytics API

Email campaign lists, campaign statistics and overall analytics (v1 and v2 side by side), plus OnSite campaign and overall analytics. Epoch-second time windows; one year of retained history.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/insider-one-analytics-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

insider-analytics-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Insider One Analytics API
  version: 1.0.0
  description: 'Email and OnSite campaign lists, campaign statistics and overall analytics.


    Derived by API Evangelist from Insider One''s own public Postman collection ("Insider One APIs", published at
    https://developers.insiderone.com/). Paths, methods, headers, query parameters and request/response examples
    are verbatim from that collection; nothing is invented. The 429 response is documented for all Insider One APIs
    on https://academy.insiderone.com/docs/api-rate-limits-1 .'
  contact:
    name: Insider One Support
    email: support@useinsider.com
    url: https://academy.insiderone.com/docs/insider-one-apis-1
  termsOfService: https://insiderone.com/terms-of-use/
externalDocs:
  description: Insider One API reference
  url: https://academy.insiderone.com/docs/api-reference-welcome
servers:
- url: https://analytics.api.useinsider.com
tags:
- name: Email
- name: OnSite
paths:
  /email/v1/campaign/list:
    get:
      operationId: getEmailCampaignList
      summary: Get email campaign list
      tags:
      - Email
      description: "This request allows you to get the analytics of your email campaigns for a given time period.\n\
        \nThe campaigns on the Draft and Scheduled statuses are not listed in the response. \n\nQuery Parameters\n\
        The following are the query parameters you need to use in your request.\n\nParameter\nData Type\nDescription\n\
        Required\n\npage\nInteger\nSpecifies the number of pages of email campaigns\nYes\n\nperPage\nInteger\nSpecifies\
        \ the number of emails to be listed per page\nYes\n\nBefore sending the request, make sure:\n\nTo replace\
        \ the authorization value with your own API key.\n\nTo replace the sample values in page and perPage with\
        \ your own values in the required data type.\n\nSample Responses\n200 OK\nThe following response returns\
        \ if the request is successful.\n\n{\n    \"currentPage\": 1,\n    \"data\": [\n        {\n            \"\
        id\": 67,\n            \"campaignName\": \"My awesome campaign\",\n            \"startTime\": \"01-01-2023\
        \ 12:30:15\"\n        },\n        {\n            \"id\": 66,\n            \"campaignName\": \"This is a\
        \ great campaign\",\n            \"startTime\": \"01-12-2022 09:30:17\"\n        },\n        {\n       \
        \     \"id\": 65,\n            \"campaignName\": \"This is a recurring campaign\",\n            \"startTime\"\
        : \"12-12-2022 12:45:15\"\n        },\n        {\n            \"id\": 64,\n            \"campaignName\"\
        : \"This is a newsletter\",\n            \"startTime\": \"22-07-2022 16:00:01\"\n        },\n        {\n\
        \            \"id\": 63,\n            \"campaignName\": \"My email campaign\",\n            \"startTime\"\
        : \"01-01-2022 18:30:00\"\n        }\n    ],\n    \"firstPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=1&perPage=5\"\
        ,\n    \"from\": 0,\n    \"lastPage\": 14,\n    \"lastPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=14&perPage=5\"\
        ,\n    \"nextPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=2&perPage=5\",\n\
        \    \"path\": \"/email/v1/campaign/list\",\n    \"perPage\": 5,\n    \"prevPageUrl\": \"https://analytics.useinsider.com/email/v1/campaign/list?page=1&perPage=5\"\
        ,\n    \"to\": 0,\n    \"total\": 67\n}\n\n400 Bad Request\nSorry, we’ve received an invalid request from\
        \ your side. You can try again later.\n\n400 Bad Request\nSorry, we couldn’t validate the request at the\
        \ moment. You can try again later.\n\n500 Internal Server Error\nSorry, we couldn’t receive any response\
        \ from our server. You can try again later.\n\nLimitations\nWhen sending your request, make sure to follow\
        \ these limitations:\n\nAll functions must be executed with an HTTPS GET request.\n\nThe x-ins-auth-key\
        \ should be provided as the authorization key on the request header. If the key is incorrect, the operation\
        \ will not be executed and an authorization error will return in the response.\n\nThis API provides data\
        \ for a 1 year-range.\n\nYou can send 1000 requests/per minute with the same API Key. If you exceed the\
        \ rate limit, you will receive a 429 error.\n\nThe perPage value should be between 1-100."
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: string
        example: Integer
      - name: perPage
        in: query
        required: false
        schema:
          type: string
        example: Integer
      security:
      - InsAuthKey: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              example:
                currentPage: 2
                data:
                - id: 1084265
                  campaignName: Email 1
                  startTime: 05-05-2023 10:09:28
                - id: 1083699
                  campaignName: A great email campaign
                  startTime: 29-04-2023 14:05:04
                - id: 1083536
                  campaignName: My amazing email campaign
                  startTime: 27-04-2023 15:28:33
                - id: 1083532
                  campaignName: RSS Email
                  startTime: 27-04-2023 15:13:11
                - id: 1083530
                  campaignName: Email campaign
                  startTime: 27-04-2023 14:34:05
                firstPageUrl: https://analytics.useinsider.com/email/v1/campaign/list?page=1&perPage=5
                from: 5
                lastPage: 38
                lastPageUrl: https://analytics.useinsider.com/email/v1/campaign/list?page=38&perPage=5
                nextPageUrl: https://analytics.useinsider.com/email/v1/campaign/list?page=3&perPage=5
                path: /email/v1/campaign/list
                perPage: 5
                prevPageUrl: https://analytics.useinsider.com/email/v1/campaign/list?page=1&perPage=5
                to: 10
                total: 190
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /email/v1/campaign/statistics:
    get:
      operationId: getEmailCampaignAnalytics
      summary: Get email campaign analytics
      tags:
      - Email
      description: "This request allows you to get the analytics of your email campaigns for a given time period.\n\
        \nThe campaigns on the Draft and Scheduled statuses are not listed in the response. \n\nQuery Parameters\n\
        The following are the query parameters you need to use in your request.\n\nParameter\nData Type\nDescription\n\
        Required\n\ncampaignId\nInteger\nYour campaign ID that can be found on the campaign URL.\nYes\n\nstartTime\n\
        int64\nThe time campaign is being launched. Specifies a 10-digit epoch start time.\nYes\n\nendTime\nint64\n\
        The current date (today’s date on the payload). It can be customizable according to your use case. Specifies\
        \ a 10-digit epoch start time.\nNo\n\nIf the endTime value is empty, it will be populated with today’s date\
        \ and time in UTC. \n\nBefore sending the request, make sure:\n\nTo replace the authorization value with\
        \ your own API key.\n\nTo replace the sample values in campaignID, startTime, and endTime with your own\
        \ values in the required data type.\n\nSample Responses\n200 OK\nThe following response returns if the request\
        \ is successful.\n\n{\n    \"data\": {\n        \"details\": {},\n        \"summary\": {\n            \"\
        blocks\": 300,\n            \"bounces\": 0,\n            \"clickRate\": 1.45,\n            \"clickToOpen\"\
        : 2860,\n            \"conversion\": 22,\n            \"conversionRate\": 0.01,\n            \"delivered\"\
        : 235746,\n            \"frequencyDrop\": 0,\n            \"invalid\": 0,\n            \"linkActivities\"\
        : [\n            {\n                \"totalClick\": 1,\n                \"uniqueClick\": 1,\n          \
        \      \"url\": \"https://google.com\"\n            }\n        ],\n            \"machineOpen\": 0,\n   \
        \         \"openRate\": 6.48,\n            \"revenue\": 0,\n            \"sendingDrop\": 0,\n          \
        \  \"sent\": 236573,\n            \"spams\": 2,\n            \"systemDrop\": 0,\n            \"totalClick\"\
        : 4931,\n            \"totalOpen\": 64518,\n            \"uniqueClick\": 3429,\n            \"uniqueOpen\"\
        : 15272,\n            \"unsubscribes\": 100\n        }\n    }\n}\n\n400 Bad Request\nSorry, we’ve received\
        \ an invalid request from your side. You can try again later.\n\n400 Bad Request\nSorry, we couldn’t validate\
        \ the request at the moment. You can try again later.\n\n400 Bad Request\nSorry, we detected an invalid\
        \ Campaign ID in your request. The Campaign ID is not found in the database. You can confirm your Campaign\
        \ ID by checking the InOne panel.\n\n406 Not Acceptable Request\nSorry, we received an invalid request.\
        \ We are able to provide the analytics data for only the last 1 year.\n\n500 Internal Server Error\nSorry,\
        \ we couldn’t receive any response from our server. You can try again later.\n\nLimitations\nWhen sending\
        \ your request, make sure to follow these limitations.\n\nAll functions must be executed with an HTTPS GET\
        \ request.\n\nThe x-ins-auth-key should be provided as the authorization key on the request header. If the\
        \ key is incorrect, the operation will not be executed and an authorization error will return in the response.\n\
        \nThis API provides data for a 1 year-range.\n\nYou can send 100 requests/per minute with the same API Key.\
        \ If you exceed the rate limit, you will receive a 429 error.\n\nThe perPage value should be between 1-100."
      parameters:
      - name: campaignId
        in: query
        required: false
        schema:
          type: string
        example: integer
      - name: startTime
        in: query
        required: false
        schema:
          type: string
        example: int64
      security:
      - InsAuthKey: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              example:
                data:
                  details:
                    '4160':
                      blocks: 0
                      bounces: 0
                      clickRate: 0
                      clickToOpen: 0
                      conversion: 0
                      conversionRate: 0
                      delivered: 12
                      frequencyDrop: 0
                      invalid: 0
                      invalidDrop: 0
                      linkActivity: []
                      machineOpen: 2
                      mobileRevenue: 0
                      openRate: 16.666666666666664
                      recommendationRevenue: 0
                      revenue: 0
                      sendingDrop: 0
                      sent: 12
                      spams: 0
                      systemDrop: 0
                      totalClick: 0
                      totalOpen: 2
                      uniqueClick: 0
                      uniqueMachineOpen: 2
                      uniqueOpen: 2
                      unsubscribes: 0
                  isp:
                  - metrics:
                      blocks: 0
                      bounces: 0
                      clickThroughRate: 0
                      delivered: 10
                      openRate: 0
                      totalClick: 0
                      totalOpen: 0
                      uniqueClick: 0
                      uniqueOpen: 0
                    name: name1
                  - metrics:
                      blocks: 0
                      bounces: 0
                      clickThroughRate: 0
                      delivered: 1
                      openRate: 100
                      totalClick: 0
                      totalOpen: 1
                      uniqueClick: 0
                      uniqueOpen: 1
                    name: name2
                  - metrics:
                      blocks: 0
                      bounces: 0
                      clickThroughRate: 0
                      delivered: 1
                      openRate: 100
                      totalClick: 0
                      totalOpen: 1
                      uniqueClick: 0
                      uniqueOpen: 1
                    name: name3
                  summary:
                    blocks: 0
                    bounces: 0
                    clickRate: 0
                    clickToOpen: 0
                    conversion: 0
                    conversionRate: 0
                    delivered: 12
                    frequencyDrop: 0
                    invalid: 0
                    invalidDrop: 0
                    linkActivity: []
                    machineOpen: 2
                    mobileRevenue: 0
                    openRate: 16.666666666666664
                    recommendationRevenue: 0
                    revenue: 0
                    sendingDrop: 0
                    sent: 12
                    spams: 0
                    systemDrop: 0
                    totalClick: 0
                    totalOpen: 2
                    uniqueClick: 0
                    uniqueMachineOpen: 2
                    uniqueOpen: 2
                    unsubscribes: 0
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /email/v1/overall:
    get:
      operationId: getOverallAnalytics
      summary: Get overall analytics
      tags:
      - Email
      description: "This request allows you to get the overall analytics of your email campaigns for a given time\
        \ period\n\nThe campaigns on the Draft and Scheduled statuses are not listed in the response. \n\nQuery\
        \ Parameters\nThe following are the query parameters you need to use in your request.\n\nParameter\nData\
        \ Type\nDescription\nRequired\n\nstartTime\nint64\nThe time campaign is being launched. Specifies a 10-digit\
        \ epoch start time.\nYes\n\nendTime\nint64\nThe current date (today’s date on the payload). It can be customizable\
        \ according to your case. Specifies a 10-digit epoch start time.\nNo\n\nBefore sending the request, make\
        \ sure:\n\nTo replace the authorization value with your own API key.\n\nTo replace the sample values in\
        \ start_date and end_date with your own values in the required data type.\n\nSample Responses\n200 OK\n\
        The following response returns if the request is successful.\n\n{\n    \"data\": {\n        \"summary\"\
        : {\n            \"blocks\": 0,\n            \"bounceDrop\": 0,\n            \"bounces\": 0,\n         \
        \   \"clickRate\": 5.88,\n            \"conversion\": 0,\n            \"conversionRate\": 0,\n         \
        \   \"delivered\": 17,\n            \"frequencyDrop\": 0,\n            \"invalid\": 0,\n            \"invalidDrop\"\
        : 0,\n            \"machineOpen\": 0,\n            \"openRate\": 47.05,\n            \"revenue\": 0,\n \
        \           \"sendingDrop\": 0,\n            \"sent\": 27,\n            \"spamDrop\": 0,\n            \"\
        spams\": 0,\n            \"systemDrop\": 0,\n            \"totalClick\": 1,\n            \"totalOpen\":\
        \ 15,\n            \"unsubscribeDrop\": 0,\n            \"unsubscribes\": 0\n        },\n        \"linkActivities\"\
        : [\n            {\n                \"totalClick\": 1,\n                \"uniqueClick\": 1,\n          \
        \      \"url\": \"https://google.com\"\n            }\n        ]\n    }\n}\n\n400 Bad Request\nSorry, we’ve\
        \ received an invalid request from your side. You can try again later.\n\n400 Bad Request\nSorry, we couldn’t\
        \ validate the request at the moment. You can try again later.\n\n429 Rate Limited\nRate limited\n\n500\
        \ Internal Server Error\nSorry, we couldn’t receive any response from our server. You can try again later.\n\
        \nLimitations\nWhen sending your request, make sure to follow these limitations:\n\nAll functions must be\
        \ executed with an HTTPS GET request.\n\nThe x-ins-auth-key should be provided as the authorization key\
        \ on the request header. If the key is incorrect, the operation will not be executed and an authorization\
        \ error will return in the response.\n\nThis API provides data for a 1 year-range.\n\nYou can send 100 requests/per\
        \ minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.\n\nThe perPage\
        \ value should be between 1-100."
      parameters:
      - name: startTime
        in: query
        required: false
        schema:
          type: string
        example: int64
      - name: endTime
        in: query
        required: false
        schema:
          type: string
        example: int64
      security:
      - InsAuthKey: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              example:
                data:
                  summary:
                    blocks: 4791
                    bounceDrop: 0
                    bounces: 0
                    clickRate: 0.7633587786259541
                    conversion: 0
                    conversionRate: 0
                    delivered: 43261
                    frequencyDrop: 0
                    invalid: 0
                    invalidDrop: 0
                    machineOpen: 2
                    openRate: 6.106870229007633
                    revenue: 0
                    sendingDrop: 4792
                    sent: 48053
                    spamDrop: 0
                    spams: 1
                    systemDrop: 0
                    totalClick: 2
                    totalOpen: 12
                    uniqueClick: 1
                    uniqueMachineOpen: 2
                    uniqueOpen: 8
                    unsubscribeDrop: 0
                    unsubscribes: 3
                  linkActivities:
                  - totalClick: 2
                    uniqueClick: 1
                    url: https://mycampaign.useinsider
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /email/v2/campaign/list:
    get:
      operationId: getEmailCampaignListV2
      summary: Get email campaign list V2
      tags:
      - Email
      description: "This request allows you to get the analytics of your email campaigns for a given time period\
        \ with more metrics than V1.\n\nThe campaigns on the Draft and Scheduled statuses are not listed in the\
        \ response. \n\nQuery Parameters\nThe following are the query parameters you need to use in your request.\n\
        \nParameter\nData Type\nDescription\nRequired\n\npage\nInteger\nSpecifies the number of pages of email campaigns\n\
        Yes\n\nperPage\nInteger\nSpecifies the number of emails to be listed per page\nYes\n\nBefore sending the\
        \ request, make sure:\n\nTo replace the authorization value with your own API key.\n\nTo replace the sample\
        \ values in page and perPage with your own values in the required data type.\n\nSample Responses\n200 OK\n\
        The following response returns if the request is successful.\n\n{\n   \"currentPage\": 1,\n   \"data\":\
        \ [\n       {\n           \"id\": 6648,\n           \"name\": \"My Email Campaign\",\n           \"tags\"\
        : \"marketing\",\n           \"type\": \"experiment\",\n           \"subject\": \"Here is your experiment\"\
        ,\n           \"senderDomain\": \"@useinsider.com\",\n           \"utmParameters\": {\n               \"\
        utm_term\": \"\",\n               \"utm_medium\": \"email\",\n               \"utm_source\": \"insider\"\
        ,\n               \"utm_status\": true,\n               \"utm_content\": \"example\",\n               \"\
        utm_campaign\": \"insider_0225\"\n           },\n           \"startTime\": \"05-02-2025 09:00:05\"\n   \
        \    }\n   ],\n“firstPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=1&perPage=10”,\n\
        \    “from”: 0,\n    “lastPage”: 79,\n    “lastPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=79&perPage=10”,\n\
        \    “nextPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=2&perPage=10”,\n    “path”:\
        \ “/email/v2/campaign/list”,\n    “perPage”: 10,\n    “prevPageUrl”: “https://analytics.useinsider.com/email/v2/campaign/list?page=1&perPage=10”,\n\
        \    “to”: 0,\n    “total”: 787\n}\n\n400 Bad Request\nSorry, we’ve received an invalid request from your\
        \ side. You can try again later.\n\n400 Bad Request\nSorry, we couldn’t validate the request at the moment.\
        \ You can try again later.\n\n500 Internal Server Error\nSorry, we couldn’t receive any response from our\
        \ server. You can try again later.\n\nLimitations\nWhen sending your request, make sure to follow these\
        \ limitations:\n\nAll functions must be executed with an HTTPS GET request.\n\nThe x-ins-auth-key should\
        \ be provided as the authorization key on the request header. If the key is incorrect, the operation will\
        \ not be executed and an authorization error will return in the response.\n\nThis API provides data for\
        \ a 1 year-range.\n\nYou can send 1000 requests/per minute with the same API Key. If you exceed the rate\
        \ limit, you will receive a 429 error.\n\nThe perPage value should be between 1-100."
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: string
        example: Integer
      - name: perPage
        in: query
        required: false
        schema:
          type: string
        example: Integer
      security:
      - InsAuthKey: []
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /email/v2/campaign/statistics:
    get:
      operationId: getEmailCampaignAnalyticsV2
      summary: Get email campaign analytics V2
      tags:
      - Email
      description: "This request allows you to get the analytics of your email campaigns for a given time period\
        \ with more metrics than V1.\n\nThe campaigns on the Draft and Scheduled statuses are not listed in the\
        \ response. \n\nQuery Parameters\nThe following are the query parameters you need to use in your request.\n\
        \nParameter\nData Type\nDescription\nRequired\n\ncampaignId\nInteger\nYour campaign ID that can be found\
        \ on the campaign URL.\nYes\n\nstartTime\nint64\nThe time campaign is being launched. Specifies a 10-digit\
        \ epoch start time.\nYes\n\nendTime\nint64\nThe current date (today’s date on the payload). It can be customizable\
        \ according to your use case. Specifies a 10-digit epoch start time.\nNo\n\nIf the endTime value is empty,\
        \ it will be populated with today’s date and time in UTC. \n\nBefore sending the request, make sure:\n\n\
        To replace the authorization value with your own API key.\n\nTo replace the sample values in campaignID,\
        \ startTime, and endTime with your own values in the required data type.\n\nSample Responses\n200 OK\nThe\
        \ following response returns if the request is successful.\n\n{\n  \"data\": {\n    \"details\": {\n   \
        \   \"1199\": {\n        \"sent\": 76982,\n        \"delivered\": 75999,\n        \"deliveryRate\": 98.72307812215843,\n\
        \        \"openRate\": 19.88315635732049,\n        \"totalOpens\": 18763,\n        \"uniqueOpens\": 15111,\n\
        \        \"clickThroughRate\": 0.3710575139146568,\n        \"totalClicks\": 581,\n        \"uniqueClicks\"\
        : 282,\n        \"clickToOpenRate\": 1.8661901925749453,\n        \"conversions\": 5,\n        \"conversionRate\"\
        : 0.0065790339346570356,\n        \"revenue\": 337.56999588012695,\n        \"unsubscribe\": 131,\n    \
        \    \"bounce\": 9,\n        \"bounceRate\": 0.0116910446597906,\n        \"blocks\": 1166,\n        \"\
        spamReports\": 7,\n        \"uniqueUserOpens\": 4098,\n        \"uniqueUserOpenRate\": 5.392176212844906,\n\
        \        \"uniqueMachineOpens\": 11013,\n        \"uniqueMachineOpenRate\": 14.490980144475586,\n      \
        \  \"systemDrops\": 0,\n        \"sendingDrops\": 1899,\n        \"frequencyDrop\": 0,\n        \"unsubscribeDrop\"\
        : 712,\n        \"spamDrop\": 0,\n        \"invalidDrop\": 0,\n        \"bounceDrop\": 5,\n        \"linkClickActivity\"\
        : [\n          {\n            \"totalClick\": 94,\n            \"uniqueClick\": 73,\n            \"link\"\
        : \"https://www.insider.com/products\"\n          },\n          {\n            \"totalClick\": 89,\n   \
        \         \"uniqueClick\": 71,\n            \"link\": \"https://www.insider.com/collections/c\"\n      \
        \    },\n          {\n            \"totalClick\": 9,\n            \"uniqueClick\": 6,\n            \"link\"\
        : \"https://www.insider.com/collections/f\"\n          }\n        ],\n        \"utmParameters\": \"{\\\"\
        utm_source\\\":\\\"insider\\\",\\\"utm_medium\\\":\\\"email\\\",\\\"utm_campaign\\\":\\\"insider_2025\\\"\
        ,\\\"utm_term\\\":\\\"\\\",\\\"utm_content\\\":\\\"\\\",\\\"utm_status\\\":true}\"\n      }\n    },\n  \
        \  \"isp\": [\n      {\n        \"name\": \"gmail\",\n        \"metrics\": {\n          \"blocks\": 283,\n\
        \          \"bounces\": 4,\n          \"clickThroughRate\": 0.1826458356749466,\n          \"delivered\"\
        : 35588,\n          \"openRate\": 10.006181859053614,\n          \"spams\": 0,\n          \"totalClick\"\
        : 91,\n          \"totalOpen\": 4854,\n          \"uniqueClick\": 65,\n          \"uniqueOpen\": 3561,\n\
        \          \"unsubscribes\": 33\n        }\n      },\n      {\n        \"name\": \"hotmail\",\n        \"\
        metrics\": {\n          \"blocks\": 139,\n          \"bounces\": 0,\n          \"clickThroughRate\": 0.3071253071253071,\n\
        \          \"delivered\": 14652,\n          \"openRate\": 28.77422877422877,\n          \"spams\": 1,\n\
        \          \"totalClick\": 51,\n          \"totalOpen\": 4796,\n          \"uniqueClick\": 45,\n       \
        \   \"uniqueOpen\": 4216,\n          \"unsubscribes\": 24\n        }\n      },\n      {\n        \"name\"\
        : \"orange\",\n        \"metrics\": {\n          \"blocks\": 17,\n          \"bounces\": 0,\n          \"\
        clickThroughRate\": 1.0698096101541252,\n          \"delivered\": 5515,\n          \"openRate\": 31.677243880326383,\n\
        \          \"spams\": 0,\n          \"totalClick\": 117,\n          \"totalOpen\": 2269,\n          \"uniqueClick\"\
        : 59,\n          \"uniqueOpen\": 1747,\n          \"unsubscribes\": 16\n        }\n      },\n      {\n \
        \       \"name\": \"yahoo\",\n        \"metrics\": {\n          \"blocks\": 6,\n          \"bounces\": 2,\n\
        \          \"clickThroughRate\": 0.690376569037657,\n          \"delivered\": 4780,\n          \"openRate\"\
        : 31.23430962343096,\n          \"spams\": 1,\n          \"totalClick\": 44,\n          \"totalOpen\": 1789,\n\
        \          \"uniqueClick\": 33,\n          \"uniqueOpen\": 1493,\n          \"unsubscribes\": 14\n     \
        \   }\n      },\n      {\n        \"name\": \"icloud\",\n        \"metrics\": {\n          \"blocks\": 128,\n\
        \          \"bounces\": 0,\n          \"clickThroughRate\": 0.17921146953405018,\n          \"delivered\"\
        : 1674,\n          \"openRate\": 46.415770609319,\n          \"spams\": 0,\n          \"totalClick\": 3,\n\
        \          \"totalOpen\": 913,\n          \"uniqueClick\": 3,\n          \"uniqueOpen\": 777,\n        \
        \  \"unsubscribes\": 2\n        }\n      },\n      {\n        \"name\": \"free\",\n        \"metrics\":\
        \ {\n          \"blocks\": 57,\n          \"bounces\": 0,\n          \"clickThroughRate\": 0.5847953216374269,\n\
        \          \"delivered\": 1539,\n          \"openRate\": 30.734243014944767,\n          \"spams\": 0,\n\
        \          \"totalClick\": 11,\n          \"totalOpen\": 599,\n          \"uniqueClick\": 9,\n         \
        \ \"uniqueOpen\": 473,\n          \"unsubscribes\": 7\n        }\n      },\n      {\n        \"name\": \"\
        msn\",\n        \"metrics\": {\n          \"blocks\": 4,\n          \"bounces\": 0,\n          \"clickThroughRate\"\
        : 0,\n          \"delivered\": 264,\n          \"openRate\": 27.65151515151515,\n          \"spams\": 0,\n\
        \          \"totalClick\": 0,\n          \"totalOpen\": 85,\n          \"uniqueClick\": 0,\n          \"\
        uniqueOpen\": 73,\n          \"unsubscribes\": 0\n        }\n      },\n      {\n        \"name\": \"bbox\"\
        ,\n        \"metrics\": {\n          \"blocks\": 10,\n          \"bounces\": 1,\n          \"clickThroughRate\"\
        : 0.5524861878453038,\n          \"delivered\": 181,\n          \"openRate\": 17.12707182320442,\n     \
        \     \"spams\": 0,\n          \"totalClick\": 1,\n          \"totalOpen\": 41,\n          \"uniqueClick\"\
        : 1,\n          \"uniqueOpen\": 31,\n          \"unsubscribes\": 0\n        }\n      }\n    ]\n  }\n}\n\n\
        400 Bad Request\nSorry, we’ve received an invalid request from your side. You can try again later.\n\n400\
        \ Bad Request\nSorry, we couldn’t validate the request at the moment. You can try again later.\n\n400 Bad\
        \ Request\nSorry, we detected an invalid Campaign ID in your request. The Campaign ID is not found in the\
        \ database. You can confirm your Campaign ID by checking the InOne panel.\n\n406 Not Acceptable Request\n\
        Sorry, we received an invalid request. We are able to provide the analytics data for only the last 1 year.\n\
        \n500 Internal Server Error\nSorry, we couldn’t receive any response from our server. You can try again\
        \ later.\n\nLimitations\nWhen sending your request, make sure to follow these limitations.\n\nAll functions\
        \ must be executed with an HTTPS GET request.\n\nThe x-ins-auth-key should be provided as the authorization\
        \ key on the request header. If the key is incorrect, the operation will not be executed and an authorization\
        \ error will return in the response.\n\nThis API provides data for a 1 year-range.\n\nYou can send 100 requests/per\
        \ minute with the same API Key. If you exceed the rate limit, you will receive a 429 error.\n\nThe perPage\
        \ value should be between 1-100."
      parameters:
      - name: campaignId
        in: query
        required: false
        schema:
          type: string
        example: integer
      - name: startTime
        in: query
        required: false
        schema:
          type: string
        example: int64
      security:
      - InsAuthKey: []
      responses:
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /email/v2/overall:
    get:
      operationId: getOverallAnalyticsV2
      summary: Get overall analytics V2
      tags:
      - Email
      description: "This request allows you to get the overall analytics of your email campaigns for a given time\
        \ period with more metrics than V1.\n\nThe campaigns on the Draft and Scheduled statuses are not listed\
        \ in the response. \n\nQuery Parameters\nThe following are the query parameters you need to use in your\
        \ request.\n\nParameter\nData Type\nDescription\nRequired\n\nstartTime\nint64\nThe time campaign is being\
        \ launched. Specifies a 10-digit epoch start time.\nYes\n\nendTime\nint64\nThe current date (today’s date\
        \ on the payload). It can be customizable according to your case. Specifies a 10-digit epoch start time.\n\
        No\n\nBefore sending the request, make sure:\n\nTo replace the authorization value with your own API key.\n\
        \nTo replace the sample values in start_date and end_date with your own values in the required data type.\n\
        \nSample Responses\n200 OK\nThe following response returns if the request is successful.\n\n{\n  \"data\"\
        : {\n    \"summary\": {\n      \"sent\": 28177222,\n      \"delivered\": 27174347,\n      \"deliveryRate\"\
        : 96.44083082427359,\n      \"openRate\": 1

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/insider/refs/heads/main/openapi/insider-analytics-openapi.yml