openapi: 3.0.0
info:
  title: Unified.to SOCIAL API
  version: "1.0"
  description: One API to Rule Them All
  contact:
    email: hello@unified.to
    url: https://unified.to/contact
  termsOfService: https://unified.to/tos
externalDocs:
  description: API Documentation
  url: https://docs.unified.to
tags:
  - name: unifiedapi
    description: Unified.to API
  - name: social
  - name: post
  - name: profile
  - name: review
  - name: insight
security:
  - jwt: []
servers:
  - url: https://api.unified.to
    description: North American data region
  - url: https://api-eu.unified.to
    description: European data region
  - url: https://api-au.unified.to
    description: Australian data region
components:
  securitySchemes:
    jwt:
      type: apiKey
      name: authorization
      in: header
  requestBodies:
    SocialPost:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/SocialPost"
    SocialReview:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/SocialReview"
  schemas:
    SocialMedia:
      type: object
      properties:
        id:
          type: string
        url:
          type: string
        alt:
          type: string
        type:
          type: string
          enum:
            - PHOTO
            - VIDEO
            - GIF
            - OTHER
          x-speakeasy-unknown-values: allow
        height:
          type: number
        width:
          type: number
        position:
          type: number
      required:
        - url
    property_SocialPost_media:
      type: array
      items:
        $ref: "#/components/schemas/SocialMedia"
      description: Media assets attached to the post
    property_SocialPost_call_to_action:
      type: object
      properties:
        type:
          type: string
          enum:
            - BOOK
            - ORDER
            - SHOP
            - LEARN_MORE
            - SIGN_UP
            - CALL
            - OTHER
          x-speakeasy-unknown-values: allow
        url:
          type: string
      description: Call-to-action button on the post
    property_SocialPost_metrics:
      type: object
      properties:
        like_count:
          type: number
        comment_count:
          type: number
        share_count:
          type: number
        quote_count:
          type: number
        view_count:
          type: number
        bookmark_count:
          type: number
      description: Engagement metrics for the post
    SocialPost:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        profile_id:
          type: string
        parent_post_id:
          type: string
        title:
          type: string
        body:
          type: string
        status:
          type: string
          enum:
            - DRAFT
            - SCHEDULED
            - PUBLISHED
            - REJECTED
            - PROCESSING
            - DELETED
            - OTHER
          x-speakeasy-unknown-values: allow
        type:
          type: string
          enum:
            - POST
            - REPLY
            - REPOST
            - QUOTE
            - EVENT
            - OFFER
            - ALERT
            - STORY
            - OTHER
          x-speakeasy-unknown-values: allow
        media:
          $ref: "#/components/schemas/property_SocialPost_media"
        url:
          type: string
        language:
          type: string
        scheduled_at:
          type: string
          format: date-time
        call_to_action:
          $ref: "#/components/schemas/property_SocialPost_call_to_action"
        metrics:
          $ref: "#/components/schemas/property_SocialPost_metrics"
        raw:
          type: object
          additionalProperties: true
    SocialPosts:
      type: array
      items:
        $ref: "#/components/schemas/SocialPost"
    property_SocialProfile_address:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        region:
          type: string
        postal_code:
          type: string
        country:
          type: string
      description: Structured postal address
    property_SocialProfile_metrics:
      type: object
      properties:
        follower_count:
          type: number
        following_count:
          type: number
        post_count:
          type: number
      description: Audience metrics for the profile
    SocialProfile:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        username:
          type: string
        parent_id:
          type: string
        description:
          type: string
        url:
          type: string
        website_url:
          type: string
        avatar_url:
          type: string
        phone:
          type: string
        location:
          type: string
        address:
          $ref: "#/components/schemas/property_SocialProfile_address"
        category:
          type: string
        is_verified:
          type: boolean
        is_private:
          type: boolean
        metrics:
          $ref: "#/components/schemas/property_SocialProfile_metrics"
        raw:
          type: object
          additionalProperties: true
    SocialProfiles:
      type: array
      items:
        $ref: "#/components/schemas/SocialProfile"
    property_SocialReview_reply:
      type: object
      properties:
        content:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      description: The business's reply to the review
    SocialReview:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        profile_id:
          type: string
        rating:
          type: number
        title:
          type: string
        content:
          type: string
        author_name:
          type: string
        author_avatar_url:
          type: string
        author_location:
          type: string
        reply:
          $ref: "#/components/schemas/property_SocialReview_reply"
        url:
          type: string
        raw:
          type: object
          additionalProperties: true
    SocialReviews:
      type: array
      items:
        $ref: "#/components/schemas/SocialReview"
    SocialInsight:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        profile_id:
          type: string
        post_id:
          type: string
        date:
          type: string
          format: date-time
        period:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - LIFETIME
            - TOTAL
            - OTHER
          x-speakeasy-unknown-values: allow
        metric:
          type: string
          enum:
            - FOLLOWERS
            - FOLLOWING
            - POSTS
            - IMPRESSIONS
            - REACH
            - ENGAGEMENT
            - PROFILE_VIEWS
            - CLICKS
            - VIDEO_VIEWS
            - LIKES
            - COMMENTS
            - SHARES
            - SAVES
            - OTHER
          x-speakeasy-unknown-values: allow
        value:
          type: number
        raw:
          type: object
          additionalProperties: true
    SocialInsights:
      type: array
      items:
        $ref: "#/components/schemas/SocialInsight"
paths:
  /social/{connection_id}/post:
    post:
      summary: Create a post
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - parent_post_id
                - title
                - body
                - status
                - type
                - media
                - url
                - language
                - scheduled_at
                - call_to_action
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - social
        - post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SocialPost"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialPost"
          description: Successful
      security:
        - jwt: []
      operationId: createSocialPost
    get:
      summary: List all posts
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: profile_id
          in: query
          required: false
          description: The profile ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - parent_post_id
                - title
                - body
                - status
                - type
                - media
                - url
                - language
                - scheduled_at
                - call_to_action
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - social
        - post
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialPosts"
          description: Successful
      security:
        - jwt: []
      operationId: listSocialPosts
  /social/{connection_id}/post/{id}:
    get:
      summary: Retrieve a post
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - parent_post_id
                - title
                - body
                - status
                - type
                - media
                - url
                - language
                - scheduled_at
                - call_to_action
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Post
          name: id
          in: path
          required: true
      tags:
        - social
        - post
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialPost"
          description: Successful
      security:
        - jwt: []
      operationId: getSocialPost
    put:
      summary: Update a post
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - parent_post_id
                - title
                - body
                - status
                - type
                - media
                - url
                - language
                - scheduled_at
                - call_to_action
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Post
          name: id
          in: path
          required: true
      tags:
        - social
        - post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SocialPost"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialPost"
          description: Successful
      security:
        - jwt: []
      operationId: updateSocialPost
    patch:
      summary: Update a post
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - parent_post_id
                - title
                - body
                - status
                - type
                - media
                - url
                - language
                - scheduled_at
                - call_to_action
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Post
          name: id
          in: path
          required: true
      tags:
        - social
        - post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SocialPost"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialPost"
          description: Successful
      security:
        - jwt: []
      operationId: patchSocialPost
    delete:
      summary: Remove a post
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Post
          name: id
          in: path
          required: true
      tags:
        - social
        - post
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeSocialPost
  /social/{connection_id}/profile/{id}:
    get:
      summary: Retrieve a profile
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - username
                - parent_id
                - description
                - url
                - website_url
                - avatar_url
                - phone
                - location
                - address
                - category
                - is_verified
                - is_private
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Profile
          name: id
          in: path
          required: true
      tags:
        - social
        - profile
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialProfile"
          description: Successful
      security:
        - jwt: []
      operationId: getSocialProfile
  /social/{connection_id}/profile:
    get:
      summary: List all profiles
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: parent_id
          in: query
          required: false
          description: The parent ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - username
                - parent_id
                - description
                - url
                - website_url
                - avatar_url
                - phone
                - location
                - address
                - category
                - is_verified
                - is_private
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - social
        - profile
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialProfiles"
          description: Successful
      security:
        - jwt: []
      operationId: listSocialProfiles
  /social/{connection_id}/review/{id}:
    get:
      summary: Retrieve a review
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - rating
                - title
                - content
                - author_name
                - author_avatar_url
                - author_location
                - reply
                - url
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Review
          name: id
          in: path
          required: true
      tags:
        - social
        - review
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialReview"
          description: Successful
      security:
        - jwt: []
      operationId: getSocialReview
    put:
      summary: Update a review
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - rating
                - title
                - content
                - author_name
                - author_avatar_url
                - author_location
                - reply
                - url
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Review
          name: id
          in: path
          required: true
      tags:
        - social
        - review
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SocialReview"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialReview"
          description: Successful
      security:
        - jwt: []
      operationId: updateSocialReview
    patch:
      summary: Update a review
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - rating
                - title
                - content
                - author_name
                - author_avatar_url
                - author_location
                - reply
                - url
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Review
          name: id
          in: path
          required: true
      tags:
        - social
        - review
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SocialReview"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialReview"
          description: Successful
      security:
        - jwt: []
      operationId: patchSocialReview
  /social/{connection_id}/review:
    get:
      summary: List all reviews
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: profile_id
          in: query
          required: false
          description: The profile ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - profile_id
                - rating
                - title
                - content
                - author_name
                - author_avatar_url
                - author_location
                - reply
                - url
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - social
        - review
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialReviews"
          description: Successful
      security:
        - jwt: []
      operationId: listSocialReviews
  /social/{connection_id}/insight/{id}:
    get:
      summary: Retrieve an insight
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - profile_id
                - post_id
                - date
                - period
                - metric
                - value
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Insight
          name: id
          in: path
          required: true
      tags:
        - social
        - insight
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialInsight"
          description: Successful
      security:
        - jwt: []
      operationId: getSocialInsight
  /social/{connection_id}/insight:
    get:
      summary: List all insights
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: profile_id
          in: query
          required: false
          description: The profile ID to filter by
        - schema:
            type: string
          name: post_id
          in: query
          required: false
          description: The post ID to filter by
        - schema:
            type: string
          name: start_gte
          in: query
          required: false
          description: The start date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: end_lt
          in: query
          required: false
          description: The end date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - profile_id
                - post_id
                - date
                - period
                - metric
                - value
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - social
        - insight
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SocialInsights"
          description: Successful
      security:
        - jwt: []
      operationId: listSocialInsights
