Outbrain Engage API

Publisher-facing content recommendation API. Returns mixed organic and paid (sponsored) recommendations for rendering in Outbrain widgets via the JS Widget, the iOS/Android Mobile SDK, Smartfeed, and mediation integrations across the open web.

Outbrain Engage API is one of 3 APIs that Outbrain publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Advertising, Content Discovery, Recommendations, Open Web, and Publisher. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

outbrain-engage-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Outbrain Engage API
  description: >
    The Outbrain Engage API powers content recommendation widgets across the
    open web. It is the publisher-facing interface for retrieving personalized
    content recommendations (organic + sponsored) to render in Outbrain
    widgets. Used by the Outbrain JS Widget, the Mobile SDK (iOS/Android),
    Smartfeed implementations, and app mediation integrations.
  version: '1.0'
  contact:
    name: Outbrain Developer Center
    url: https://developer.outbrain.com
  license:
    name: Outbrain Publisher Terms
    url: https://www.outbrain.com/legal/

servers:
  - url: https://odb.outbrain.com
    description: Production Engage / recommendations endpoint

security:
  - PublisherKeyAuth: []

tags:
  - name: Recommendations
    description: Retrieve content recommendations
  - name: Widgets
    description: Publisher widget configuration
  - name: Events
    description: Impression and click events

paths:
  /utils/get:
    get:
      summary: Get Recommendations For A Widget
      description: >
        Fetch a set of recommended content items for a given publisher widget.
        Recommendations include both organic content and sponsored (paid)
        promoted links. Driven by the publisher key, widget ID, and the page URL.
      operationId: getRecommendations
      tags:
        - Recommendations
      parameters:
        - name: widgetJSId
          in: query
          required: true
          schema:
            type: string
          description: The publisher widget ID (e.g. AR_1, AR_2).
        - name: permalink
          in: query
          required: true
          schema:
            type: string
            format: uri
          description: Canonical URL of the page rendering the widget.
        - name: publisherKey
          in: query
          required: true
          schema:
            type: string
          description: Outbrain publisher key.
        - name: idx
          in: query
          required: false
          schema:
            type: integer
          description: Widget index on the page.
        - name: pageNum
          in: query
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Recommendations payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationsResponse'

  /report/impression:
    post:
      summary: Report A Widget Impression
      description: Report that an Outbrain widget rendered impressions for one or more recommendations.
      operationId: reportImpression
      tags:
        - Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImpressionEvent'
      responses:
        '204':
          description: Event recorded.

  /report/click:
    post:
      summary: Report A Recommendation Click
      description: Report a user click on a recommendation served by an Outbrain widget.
      operationId: reportClick
      tags:
        - Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClickEvent'
      responses:
        '204':
          description: Event recorded.

components:
  securitySchemes:
    PublisherKeyAuth:
      type: apiKey
      in: query
      name: publisherKey

  schemas:
    Recommendation:
      type: object
      properties:
        id:
          type: string
        content:
          type: string
          description: Headline text of the recommendation.
        url:
          type: string
          format: uri
        thumbnail:
          type: object
          properties:
            url:
              type: string
              format: uri
            width:
              type: integer
            height:
              type: integer
        origin:
          type: string
          enum: [ORGANIC, PAID]
        source_name:
          type: string
        publish_date:
          type: string
          format: date-time
        disclosure:
          type: object
          properties:
            informationUrl:
              type: string
              format: uri
            prefix:
              type: string

    RecommendationsResponse:
      type: object
      properties:
        request:
          type: object
          properties:
            success:
              type: boolean
            id:
              type: string
        settings:
          type: object
        response:
          type: object
          properties:
            recommendations:
              type: array
              items:
                $ref: '#/components/schemas/Recommendation'

    ImpressionEvent:
      type: object
      required: [widgetJSId, publisherKey, recommendationIds]
      properties:
        widgetJSId:
          type: string
        publisherKey:
          type: string
        recommendationIds:
          type: array
          items:
            type: string
        permalink:
          type: string
          format: uri

    ClickEvent:
      type: object
      required: [widgetJSId, publisherKey, recommendationId]
      properties:
        widgetJSId:
          type: string
        publisherKey:
          type: string
        recommendationId:
          type: string
        permalink:
          type: string
          format: uri