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

# Get Social Selling best publishing times

> Find the best weekday and hour to publish on LinkedIn, learned from the caller’s own tracked Social Selling posts. Each post counts in the weekday/hour it was published in `timeZone`, and slots are ranked by the average `metric` per measured post (`engagement` = reactions + comments by default). Returns the top `limit` slots (`bestSlots`, each with at least `minPosts` measured posts), plus averages per weekday (`byWeekday`, MONDAY–SUNDAY) and per hour (`byHour`, 0–23). Covers posts published in the last 90 days by default (at most 366), without reposts; metrics come from each post’s latest daily LinkedIn snapshot. Read-only.

    > **Required scope:** `SOCIAL_SELLING_READ`
    >
    > **Rate limit:** 100 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json get /v1/social-selling/analytics/publishing-times
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/social-selling/analytics/publishing-times:
    get:
      tags:
        - Social Selling
      summary: Get Social Selling best publishing times
      description: >-
        Find the best weekday and hour to publish on LinkedIn, learned from the
        caller’s own tracked Social Selling posts. Each post counts in the
        weekday/hour it was published in `timeZone`, and slots are ranked by the
        average `metric` per measured post (`engagement` = reactions + comments
        by default). Returns the top `limit` slots (`bestSlots`, each with at
        least `minPosts` measured posts), plus averages per weekday
        (`byWeekday`, MONDAY–SUNDAY) and per hour (`byHour`, 0–23). Covers posts
        published in the last 90 days by default (at most 366), without reposts;
        metrics come from each post’s latest daily LinkedIn snapshot. Read-only.

            > **Required scope:** `SOCIAL_SELLING_READ`
            >
            > **Rate limit:** 100 requests per minute
      parameters:
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2026-09-01'
            description: >-
              First publication day (UTC, inclusive). Defaults to 89 days before
              `dateTo`.
          required: false
          description: >-
            First publication day (UTC, inclusive). Defaults to 89 days before
            `dateTo`.
          name: dateFrom
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2026-09-01'
            description: >-
              Last publication day (UTC, inclusive). Defaults to today. At most
              366 days in total.
          required: false
          description: >-
            Last publication day (UTC, inclusive). Defaults to today. At most
            366 days in total.
          name: dateTo
          in: query
        - schema:
            type:
              - array
              - 'null'
            items:
              type: integer
              exclusiveMinimum: 0
            minItems: 1
            description: >-
              List of identity ids to analyse (REST also accepts a
              comma-separated value). Defaults to every identity the caller may
              see; ids outside that scope are ignored.
            example: 12,34
          required: false
          description: >-
            List of identity ids to analyse (REST also accepts a comma-separated
            value). Defaults to every identity the caller may see; ids outside
            that scope are ignored.
          name: identityIds
          in: query
        - schema:
            type: boolean
            default: false
            description: Count reposts made by the identities. Off by default.
          required: false
          description: Count reposts made by the identities. Off by default.
          name: includeReposts
          in: query
        - schema:
            type: string
            maxLength: 100
            default: UTC
            description: IANA time zone in which weekdays and hours are computed.
            example: Europe/Madrid
          required: false
          description: IANA time zone in which weekdays and hours are computed.
          name: timeZone
          in: query
        - schema:
            type: string
            enum:
              - impressions
              - reactions
              - comments
              - engagement
            default: engagement
            description: >-
              What "best" means: average `engagement` (reactions + comments),
              `reactions`, `comments` or `impressions` per post.
          required: false
          description: >-
            What "best" means: average `engagement` (reactions + comments),
            `reactions`, `comments` or `impressions` per post.
          name: metric
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 2
            description: Minimum measured posts a slot needs to be ranked.
          required: false
          description: Minimum measured posts a slot needs to be ranked.
          name: minPosts
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 20
            default: 5
            description: How many best slots to return.
          required: false
          description: How many best slots to return.
          name: limit
          in: query
      responses:
        '200':
          description: Best publishing slots and weekday/hour averages
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      timeZone:
                        type: string
                      metric:
                        type: string
                        enum:
                          - impressions
                          - reactions
                          - comments
                          - engagement
                      dateFrom:
                        type: string
                        example: '2026-07-22'
                      dateTo:
                        type: string
                        example: '2026-10-19'
                      includeReposts:
                        type: boolean
                      minPosts:
                        type: number
                      totalPosts:
                        type: number
                        description: Posts published in the range.
                      measuredPosts:
                        type: number
                        description: Posts with at least one LinkedIn metrics snapshot.
                      computedAt:
                        type:
                          - string
                          - 'null'
                        description: >-
                          When the newest metrics snapshot used was taken (ISO
                          timestamp).
                      bestSlots:
                        type: array
                        items:
                          type: object
                          properties:
                            weekday:
                              type: string
                              enum:
                                - MONDAY
                                - TUESDAY
                                - WEDNESDAY
                                - THURSDAY
                                - FRIDAY
                                - SATURDAY
                                - SUNDAY
                            hour:
                              type: number
                              description: >-
                                Hour of day 0–23 (the hour starting at that
                                time).
                            posts:
                              type: number
                              description: Posts published in the slot.
                            measuredPosts:
                              type: number
                              description: >-
                                Posts with LinkedIn metrics for the metric (the
                                average’s denominator).
                            averageValue:
                              type: number
                              description: Average `metric` per measured post.
                          required:
                            - weekday
                            - hour
                            - posts
                            - measuredPosts
                            - averageValue
                        description: Best slots first.
                      byWeekday:
                        type: array
                        items:
                          type: object
                          properties:
                            weekday:
                              type: string
                              enum:
                                - MONDAY
                                - TUESDAY
                                - WEDNESDAY
                                - THURSDAY
                                - FRIDAY
                                - SATURDAY
                                - SUNDAY
                            posts:
                              type: number
                              description: Posts published in the slot.
                            measuredPosts:
                              type: number
                              description: >-
                                Posts with LinkedIn metrics for the metric (the
                                average’s denominator).
                            averageValue:
                              type:
                                - number
                                - 'null'
                          required:
                            - weekday
                            - posts
                            - measuredPosts
                            - averageValue
                      byHour:
                        type: array
                        items:
                          type: object
                          properties:
                            hour:
                              type: number
                            posts:
                              type: number
                              description: Posts published in the slot.
                            measuredPosts:
                              type: number
                              description: >-
                                Posts with LinkedIn metrics for the metric (the
                                average’s denominator).
                            averageValue:
                              type:
                                - number
                                - 'null'
                          required:
                            - hour
                            - posts
                            - measuredPosts
                            - averageValue
                    required:
                      - timeZone
                      - metric
                      - dateFrom
                      - dateTo
                      - includeReposts
                      - minPosts
                      - totalPosts
                      - measuredPosts
                      - computedAt
                      - bestSlots
                      - byWeekday
                      - byHour
                required:
                  - status
                  - message
                  - data
        '400':
          description: >-
            Invalid query: unknown time zone, a range over 366 days or ending
            before it starts, or an out-of-range `limit`/`minPosts`/`metric`
        '403':
          description: >-
            Social Selling is not enabled for this workspace. Ask your workspace
            admin to enable the feature.
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.