Skip to main content

Outbrain Content API 2.0

This document explains how to use Outbrain’s Content Endpoint API for client-to-server and server-to-server integrations. It is imperative to adhere to these instructions. Deviation from this guide can result in lost revenue.

Contact your Outbrain Account Manager if you have any questions about the requirements described in this document.

Testing & Outbrain Verification​

Before launch, your app will be required to direct requests to a test server for Outbrain verification. Send testMode=true in the Outbrain request URL to prevent clicks and impressions from having any impact on our system while testing and developing.

A test page or finalized build must be sent to Outbrain QA a minimum of 5 business days before your anticipated release date. We may request changes which will require additional development resources and could delay your release.

Outbrain reserves the right to remove our recommendations or restrict the widget from generating Outbrain revenue if required changes are not incorporated prior to release. Contact your Account Manager for submission instructions.

New Partner Requirements​

Review all Outbrain compliance requirements and flag any concerns/exceptions with your Partner Manager and Sales Engineer immediately.

Making an Ad Request

Client-to-Server Request​

PlatformStatusDescription
Regular webMust be enabledSee XMLHttpRequest.withCredentials and fetch with credentials:include
Mobile appsMust be disabledDevice's Advertising ID will be sent as a request parameter

Request Parameters​

Base URL: 'https://mv.outbrain.com'

Endpoint: '/Multivac/api/platforms'

NameRequirementDescriptionExample
'contentUrl'Required for webThe URI-encoded clean permalink (stripped of parameters) to identify the currently displayed content.https://www.currentSite.com/articleName
'bundleUrl'Required for appsThe URI-encoded store URL of the App.http://itunes.apple.com/<country>/app/<app-name>/id<app-ID>
https://play.google.com/store/apps/details?id=<package_name>
'portalUrl'Required for native environmentsSend if contentUrl & bundleUrl do not apply. A URL representing the context where the ad placement is presented to users. Does not need to be a reachable/crawlable URL.http://www.chatPortal.com
'widgetJSId'RequiredThe ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.APP_1
'key'RequiredUnique API key, provided by Outbrain.DEMOP1MN24J3E1MGLQ92067LH
'api_user_id'Required for native apps. Must be unique user session identifierWeb: do not send - we will rely on user cookies instead. Desktop apps: send a unique user ID that identifies the user during the application session. Mobile apps: It is mandatory to pass the Google or Apple Advertising ID.38400000-8cf0-11bd-b23e-10b96e40000d
'lang'Required for apps & native environmentsThe 2-letter language code (ISO-639-1-alpha-2). Must be added if bundleUrl or portalUrl is sent.en
'idx'RequiredThe current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.0
't'OptionalThis token (the 't' value) is returned from the server on every request as a 'request.t' object and should be used in any consecutive request on the same page. The first request on the page should have 'idx=0' and no 't' value, while the second request on the same page should use 'idx=1' and send the 't' value returned by the first request.ZjZkN2Q0NmRiZGRlNGRmMmNiNDVkZTlkMGU1OWFmNDQ=
'pubImpId'Only if instructed by SE, Required for Native2Image8-32 character string unique impression identifier - will be used as key for storing the relevant click redirect on Outbrain server sidestring1234568
'pubPvId'Only if instructed by SE, Optional8-32 character string unique pageview id. Instead of using the 't' token in API response, a single pageview can be defined by passing a unique id. Consecutive requests can be made using the same 'pubPvId' to declare the same pageview, however, 'idx' must start from 0 and incremented for different placements.string12345
'maxNumAds'Only if instructed by SE, OptionalNumber of ads to fetch. Typically, a static number of ads is configured for each Outbrain placement (widgetJSId). Please use it only if you require a variable number of ads on each request.5
'maxNumOrganicRecs'Only if instructed by SE, OptionalNumber of Organic recommendations to fetch. Typically, a static number of Organic recommendations is configured for each Outbrain placement (widgetJSId). Please use it only if you require a variable number of Organic recommendations on each request.5
'psub'Only if instructed by SE, OptionalString value for additional section-level reporting breakdowns. Allowed characters: alphanumeric and underscore '_'. Requires permission from your Sales Engineer or Partner Manager.minus1
'app_id'Only if instructed by SE, Required for App Native EnvironmentThe App's unique identifier iOS: Bundle ID, Android: Application ID/Package Namecom.king.candycrushsaga
'cors'RequiredSet to true. Send simple requests without unapproved headers which will trigger "preflighted requests".true
'format'RequiredString value for the response formatJSON: vjnc
VAST for Native2Video: vast
Image for Native2Image: image
'adblck'Optional,
required for partners sending adblock traffic
Boolean value to indicate if the request is coming from an adblocker environment.true
'testMode'OptionalSet to true to prevent any clicks and impressions from impacting the Outbrain system while testing and developing. This parameter must be removed before releasing to production.true
'cnsntv2'OptionalBase64-encoded consent string, as defined by the IAB for TCF v2.0. If this is not received it is assumed no consent is given. Please do not send cnsntv2 together with the deprecated parameter "cnsnt".CO4SiGQO4SiGQAGABBENAzCgAP_AAG...(omitted)...Q4C8yoAEAHwA.YAAAAAAAAAAA
'ccpa'Optional4-character consent string, as defined by the IAB. See U.S. Privacy String. Send 1 character each for Specification Version, Explicit Notice, Opt-Out Sale, and LSPA.1YNN
'api_consent'Only if instructed by SE, Optional0/1 value of user's consent for personalisation. Alternative consent signal when your environment has own consent management system instead of IAB compliant TCF v2.0. Please do not send api_consent together with 'cnsntv2'.0:Opt-out or Not decided
1: Opt-in Consent
'extid'OptionalString value with maximum of 110 characters for use with the Engage Variant Reporting API. A maximum of 100K IDs/hour are supported. Contact your Partner Manager for API access.tagID12345
'extid2'OptionalString value with maximum of 110 characters. A secondary id for Engage Variant Reporting API as same as the 'extid'tagID67890
'news'Only if instructed by SE, Required for OB NewsPre-defined value of a single OB News category. Supported categories varies by country which is specified by either geo location of the user or 'newsFrom' parameter.Either of: latest
sports
tech
business
entertainment
lifestyle
'newsFrom'Only if instructed by SE, Optional for OB NewsThe 2-letter country code of news source location. Supported countries are limited. Please use it only if you need to strictly specify the news source location.Country: US

Server-to-Server Request​

HTTP Request Headers​

The server side integration must forward user's device and geolocation via HTTP request headers. In case when it's not available, e.g. Proxied traffic, the 'ob_ua' and 'location' parameters can accept generic information. However, the limited support for these information may significantly affect the performance. Please consult with your Sales Engineer if your platform cannot support these headers.

NameDescriptionExample
'User-Agent'The user’s User­AgentMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
'X-Forwarded-For'The user’s IP address233.54.67.45

Request Parameters​

Base URL: 'https://mv.outbrain.com'

Endpoint: '/Multivac/api/platforms'

Parameter NameRequirementDescriptionExample
'contentUrl'Required for webThe URI-encoded clean permalink (stripped of parameters) to identify the currently displayed content.https://www.currentSite.com/
'bundleUrl'Required for appsThe URI-encoded store URL of the App.http://itunes.apple.com/<country>/app/<app-name>/id<app-ID>
https://play.google.com/store/apps/details?id=<package_name>
'portalUrl'Required for native environmentsSend if contentUrl & bundleUrl do not apply. A URL representing the context where the ad placement is presented to users. Does not need to be a reachable/crawlable URL.http://www.chatPortal.com
'widgetJSId'RequiredThe ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.APP_1
'key'RequiredUnique API key, provided by Outbrain.DEMOP1MN24J3E1MGLQ92067LH
'api_user_id'RequiredDesktop apps: send a unique user ID that identifies the user during the application session. Mobile apps: It is mandatory to pass the Google or Apple Advertising ID.38400000-8cf0-11bd-b23e-10b96e40000d
'lang'Required for apps & native environmentsThe 2-letter language code (ISO-639-1-alpha-2). Must be added if bundleUrl or portalUrl is sent.en
'ob_ua'Only if instructed by SE, OptionalPre-defined value of generic user agents only if actual UA cannot be forwarded in HTTP headers.Desktop devices: ob_desktop
Mobile devices: ob_mobile
Tablet devices: ob_tablet
Unknown devices: ob_unknown_user_agent
'location'Only if instructed by SE, OptionalThe 2-letter country code of the user’s location only if actual IP address cannot be forwarded in HTTP headers.Country: US
State: US>NY
DMA: US>NY>501
Zipcode: use a separate parameter 'zip=user’s zipcode'
'idx'RequiredThe current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.0
't'OptionalThis token (the 't' value) is returned from the server on every request as a 'request.t' object and should be used in any consecutive request on the same page. The first request on the page should have 'idx=0' and no 't' value, while the second request on the same page should use 'idx=1' and send the 't' value returned by the first request.ZjZkN2Q0NmRiZGRlNGRmMmNiNDVkZTlkMGU1OWFmNDQ=
'pubImpId'Only if instructed by SE, Required for Native2Image8-32 character string unique impression identifier - will be used as key for storing the relevant click redirect on Outbrain server sidestring1234568
'pubPvId'Only if instructed by SE, Optional8-32 character string unique pageview id. Instead of using the 't' token in API response, a single pageview can be defined by passing a unique id. Consecutive requests can be made using the same 'pubPvId' to declare the same pageview, however, 'idx' must start from 0 and incremented for different placements.string12345
'maxNumAds'Only if instructed by SE, OptionalNumber of ads to fetch. Typically, a static number of ads is configured for each Outbrain placement (widgetJSId). Please use it only if you require a variable number of ads on each request.5
'maxNumOrganicRecs'Only if instructed by SE, OptionalNumber of Organic recommendations to fetch. Typically, a static number of Organic recommendations is configured for each Outbrain placement (widgetJSId). Please use it only if you require a variable number of Organic recommendations on each request.5
'psub'Only if instructed by SE, OptionalString value for additional section-level reporting breakdowns. Allowed characters: alphanumeric and underscore '_'. Requires permission from your Sales Engineer or Partner Manager.minus1
'app_id'Only if instructed by SE, Required for App Native EnvironmentThe App's unique identifier iOS: Bundle ID, Android: Application ID/Package Namecom.king.candycrushsaga
'format'RequiredString value for the response formatJSON: vjnc
VAST for Native2Video: vast
Image for Native2Image: image
'secured'OptionalFor HTTPS support, add secured=true to the request.true
'adblck'Optional,
required for partners sending adblock traffic
Boolean value to indicate if the request is coming from an adblocker environment.true
'testMode'OptionalSet to true to prevent any clicks and impressions from impacting the Outbrain system while testing and developing. This parameter must be removed before releasing to production.true
'cnsntv2'OptionalBase64-encoded consent string, as defined by the IAB for TCF v2.0. If this is not received it is assumed no consent is given. Please do not send cnsntv2 together with the deprecated parameter "cnsnt".CO4SiGQO4SiGQAGABBENAzCgAP_AAG...(omitted)...A4gDcAHoAReAkQBQ4C8yoAEAHwA.YAAAAAAAAAAA
'ccpa'Optional4-character consent string, as defined by the IAB. See U.S. Privacy String. Send 1 character each for Specification Version, Explicit Notice, Opt-Out Sale, and LSPA.1YNN
'api_consent'Only if instructed by SE, Optional0/1 value of user's consent for personalisation. Alternative consent signal when your environment has own consent management system instead of IAB compliant TCF v2.0. Please do not send api_consent together with 'cnsntv2'.0:Opt-out or Not decided
1: Opt-in Consent
'extid'OptionalString value with maximum of 110 characters for use with the Engage Variant Reporting API. A maximum of 100K IDs/hour are supported. Contact your Partner Manager for API access.tagID12345
'extid2'OptionalString value with maximum of 110 characters. A secondary id for Engage Variant Reporting API as same as the 'extid'tagID67890
'news'Only if instructed by SE, Required for OB NewsPre-defined value of a single OB News category. Supported categories varies by country which is specified by either geo location of the user or 'newsFrom' parameter.Either of: latest
sports
tech
business
entertainment
lifestyle
'newsFrom'Only if instructed by SE, Optional for OB NewsThe 2-letter country code of news source location. Supported countries are limited. Please use it only if you need to strictly specify the news source location.Country: US

Handling Ad Response

After the request is made, Outbrain returns the recommendations in a specified format. If you are installing the Outbrain service on multiple containers on the same page, please ask your Account Manager for additional widget IDs (e.g. APP_2, APP_3) for use in each distinct container.

JSON format​

Outbrain Response​

Each response returns multiple recommendations intended to be displayed together in the same container. Jump to Test Content API to see an example. The recommendations are available in the doc array within the documents property at the root of the response.

Response FieldRequirementDescription
'documents'-A wrapper for the recommendations array with the total number of recommendations
'doc'-An array of returned recommendations objects
'doc.content'RequiredThe title of the recommendation 
'doc.url'RequiredThe redirect URL of Outbrain. This URL must be used to navigate the user to the outbrain paid recommendation when a user is clicking on paid a recommendation, and can be used for organic recommendations.
'doc.orig_url'Optional for OrganicThe original URL of the recommendation. This should not be used to navigate the user to paid recommendations, and can only be used for organic recommendations.
'doc.source_display_name'Required for Ads The advertiser name. Be sure to use this 'source_display_name' and not 'source_name'.
'doc.pc_id'-Returns if the recommendation is a paid link 
'doc.author'Optional for OrganicThe author of the recommended article. For paid recommendations this field will usually be blank.
'doc.desc'OptionalThe Description of the recommendation.
'doc.thumbnail'-Object that contains thumbnail information, if configured to send thumbnails 
'doc.thumbnail.url'RequiredThe URL of the thumbnail
'doc.thumbnail.width'-The width of the thumbnail
'doc.thumbnail.height'-The height of the thumbnail
'doc.isVideo'-Indicate if the doc is a video recommendation
'doc.predictedRpm'-The estimated RPM of each ad. It's not a guaranteed RPM. Ask your Sales Engineer to enable.

Events & Pixels​

The JSON response includes a set of postback URLs that must be triggered on specific events.

If you are unable to support these actions, notify your Partner Manager.

Widget-Level Trackers​

Response FieldRequirementDescription
'viewability_actions.reportServed'RequiredThis event is used to report Outbrain PVs/impressions. Trigger this URL when the Outbrain response is received and rendered on the user’s device. Note: This postback expires after 3 minutes.
'viewability_actions.reportViewed'(Deprecated) Please support the Listing level tracker 'doc.on-viewed' insteadTrigger this URL when the Outbrain recommendation is viewed by the user. Viewed: The top 1px of the widget is visible in the browser window for a continuous 1 second.

Listing-Level Trackers​

Note: Limited support for pixels may lead to restricted activity

Response FieldRequirementDescription
'doc.pixels'RequiredImage pixels are required to support Advertiser/Marketer activity tracking. Maximum 5 of pixels in the Outbrain response must be fired preferably from the client side. Please contact Outbrain Account Strategist if your implementation needs to fire them on the server side.
'doc.jsTrackers'OptionalJavaScript tracking pixels are required to support Advertiser/Marketer activity tracking, verification and authentication services. All pixels in the Outbrain response must be executed from the client side. Please contact Outbrain Account Strategist if your implementation can support them.
'doc.on-viewed'RequiredTrigger this URL when the Outbrain recommendation is viewed by the user. Viewed: 50% of the Listing Ad unit is visible in the viewport for a continuous 1 second.
'doc.clickTrackers'OptionalA list of pixel URLs to be fired when the user clicks on the recommendation.

VAST format​

Outbrain Response​

After the request is made, Outbrain returns the recommendations in a VAST 3.0 format.

Events & Pixels​

Compliant to VAST 3.0 specifications, all 'TrackingEvents.Event' URL must be fired on certain type of event occurs in the video player.

Image format​

Outbrain Response​

After the request is made, Outbrain returns the image data with HTTP 302 redirect. Each response returns a single recommendations.

Events & Pixels​

No events pixels are required to be handled at the moment.

Handling Clicks

Registering a user click is critical for tracking performance and algorithmic optimization. All clicks are registered through the Outbrain redirect, even in the case of a user right clicking to open a link in a new tab.

JSON format(Click)​

When a user clicks on a paid recommendation, it must direct them to the 'doc.url' of that recommendation without any additional redirect URL or UX disturbance. Paid recommendation URLs start with http://paid.outbrain.com/network/redir. This registers a click in Outbrain reporting.

Organic recommendations​

Option 1: Using 'doc.url' When a user clicks on an organic recommendation, direct the user to the 'doc.url' of that recommendation. Organic recommendations URLs “http://traffic.outbrain.com/network/redir”.

Option 2: Using 'doc.orig_url' + 'doc.url' When a user clicks on an organic recommendation, direct the user to the 'doc.orig_url' of that recommendation and report the click by sending a separate request to the 'doc.url' in parallel.

VAST format(Click)​

Compliant to VAST 3.0 specifications, 'VideoClicks.ClickThrough' URL must open in a new tab when user clicks on any given player area except video controls.

Image format(Click)​

When a user clicks a paid recommendation, direct them to the URL corresponds to the pubImpId of the Ad fetch request. The URL format is 'https://paid.outbrain.com/network/redir2?key=[key]&pubImpId=[pubImpId]'. This registers a click in Outbrain reporting.

Organic recommendations​

Organic recommendations are not supported at the moment.

Browser Requirements​

Desktop apps: Recommendations must be opened in a standard web browser.

Mobile apps: Recommendations must be opened in either:

  • Safari/SFViewController
  • Chrome/Chrome Custom Tabs

Opt-Out

Users must have the ability to opt out of Outbrain’s user tracking. Possible exceptions:

  • Application with universal opt-out
  • Notifications which users can block in browser settings
  • Partner Terms of Service includes link to Outbrain privacy policy (Only accepted on Web client side integration and requires Partner Manager Permission)

Please reach out to you Partner Manager if you think one of the above exceptions apply to your activity.

To support Outbrain opt-out:​

Add the AdChoices Icon and make it a clickable link pointing to Outbrain Privacy Policy URL as stated below.

AdChoices Icon​

'https://widgets.outbrain.com/images/widgetIcons/achoice.svg'

Privacy Policy URL​

Use Case: Web - Client-to-Server​

'https://www.outbrain.com/what-is/'

Use Case: Web - Server-to-Server​

The user’s unique identifier must be passed in the uid parameter. This is the same value specified in api_user_id: 'https://www.outbrain.com/what-is/?uid=UNIQUE_USER_ID'

Use Case: Desktop apps​

The user’s unique identifier must be passed in the uid parameter. This is the same value specified in api_user_id: 'https://www.outbrain.com/what-is/?uid=UNIQUE_USER_ID'

Use Case: Mobile apps​

The user’s unique identifier must be passed in the uid parameter. This is the same value specified in api_user_id: 'https://www.outbrain.com/what-is/?uid=UNIQUE_USER_ID' In compliance with Google and Apple guidelines, if the user opted out of ad tracking/personalisation, pass api_user_id=null in the Outbrain request URL.

Test Content API for Web [/Multivac/api/platforms?contentUrl={contentUrl}&widgetJSId={widgetJSId}&key={key}&idx={idx}&format={format}&testMode={testMode}]

Client-to-Server + Web [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • contentUrl (required, URL, 'https%3A%2F%2Fwww.outbrain.com%2Fblog%2F') ... The URL-encoded permalink to identify the currently displayed content.
    • widgetJSId (required, string, 'APP_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • cors (required, string, 'true') ... static value
    • format (required, string, 'vjnc') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

  • Response 200 (application/json)

Server-to-Server + Web [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • contentUrl (required, URL, 'https%3A%2F%2Fwww.outbrain.com%2Fblog%2F') ... The URL-encoded permalink to identify the currently displayed content.
    • widgetJSId (required, string, 'APP_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • api_user_id (required, string, '38400000-8cf0-11bd-b23e-10b96e40000d') ... A unique user ID that identifies the user during the application session. This must be provided by the hosting application, and can take any type of value or format. This functions similarly to user identifying cookies on the web. For mobile apps, it is mandatory to pass the Google or Apple Advertising ID.
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • format (required, string, 'vjnc') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

    • Headers

      User-Agent: "Chrome: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" X-Forwarded-For: 233.54.67.45

  • Response 200 (application/json)

Test Content API for Apps [/Multivac/api/platforms?bundleUrl={bundleUrl}&widgetJSId={widgetJSId}&key={key}&api_user_id={api_user_id}&lang={lang}&idx={idx}&format={format}&testMode={testMode}]

Client-to-Server + Apps [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • bundleUrl (required, URL, 'https://play.google.com/store/apps/details?id=com.outbrain&') ... The bundle URL from the App/Play Store.
    • widgetJSId (required, string, 'APP_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • api_user_id (required, string, '38400000-8cf0-11bd-b23e-10b96e40000d') ... A unique user ID that identifies the user during the application session. This must be provided by the hosting application, and can take any type of value or format. This functions similarly to user identifying cookies on the web. For mobile apps, it is mandatory to pass the Google or Apple Advertising ID.
    • lang (required, string, 'en') ... The 2-letter language code (ISO-639-1-alpha-2).
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • cors (required, string, 'true') ... static value
    • format (required, string, 'vjnc') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

  • Response 200 (application/json)

Server-to-Server + Apps [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • bundleUrl (required, URL, 'https://play.google.com/store/apps/details?id=com.outbrain&') ... The bundle URL from the App/Play Store.
    • widgetJSId (required, string, 'APP_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • api_user_id (required, string, '38400000-8cf0-11bd-b23e-10b96e40000d') ... A unique user ID that identifies the user during the application session. This must be provided by the hosting application, and can take any type of value or format. This functions similarly to user identifying cookies on the web. For mobile apps, it is mandatory to pass the Google or Apple Advertising ID.
    • lang (required, string, 'en') ... TThe 2-letter language code (ISO-639-1-alpha-2).
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • format (required, string, 'vjnc') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

    • Headers

      User-Agent: "Chrome: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" X-Forwarded-For: 233.54.67.45

  • Response 200 (application/json)

Test Content API for Native Environments [/Multivac/api/platforms?portalUrl={portalUrl}&widgetJSId={widgetJSId}&key={key}&api_user_id={api_user_id}&lang={lang}&idx={idx}&format={format}&testMode={testMode}]

Client-to-Server + Native [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • portalUrl (required, URL, 'https://lp.outbrain.com/increase-sales-native-ads/') ... A URL representing the context where the ad placement is presented to users.
    • widgetJSId (required, string, 'APP_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • api_user_id (required, string, '38400000-8cf0-11bd-b23e-10b96e40000d') ... A unique user ID that identifies the user during the application session. This must be provided by the hosting application, and can take any type of value or format. This functions similarly to user identifying cookies on the web. For mobile apps, it is mandatory to pass the Google or Apple Advertising ID.
    • lang (required, string, 'en') ... The 2-letter language code (ISO-639-1-alpha-2).
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • cors (required, string, 'true') ... static value
    • format (required, string, 'vjnc') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

  • Response 200 (application/json)

Server-to-Server + Native [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • portalUrl (required, URL, 'https://lp.outbrain.com/increase-sales-native-ads/') ... A URL representing the context where the ad placement is presented to users.
    • widgetJSId (required, string, 'APP_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • api_user_id (required, string, '38400000-8cf0-11bd-b23e-10b96e40000d') ... A unique user ID that identifies the user during the application session. This must be provided by the hosting application, and can take any type of value or format. This functions similarly to user identifying cookies on the web. For mobile apps, it is mandatory to pass the Google or Apple Advertising ID.
    • lang (required, string, 'en') ... TThe 2-letter language code (ISO-639-1-alpha-2).
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • format (required, string, 'vjnc') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

    • Headers

      User-Agent: "Chrome: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" X-Forwarded-For: 233.54.67.45

  • Response 200 (application/json)

Test Content API for Native2Video [/Multivac/api/platforms?contentUrl={contentUrl}&widgetJSId={widgetJSId}&key={key}&idx={idx}&format={format}&testMode={testMode}]

Client-to-Server + Native2Video [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • contentUrl (required, URL, 'https%3A%2F%2Fwww.outbrain.com%2Fblog%2F') ... The URL-encoded permalink to identify the currently displayed content.
    • widgetJSId (required, string, 'NTVD_1') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • cors (required, string, 'true') ... static value
    • format (required, string, 'vast') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (text/xml)

  • Response 200 (text/xml)

Test Content API for Native2Image [/Multivac/api/platforms?portalUrl={portalUrl}&widgetJSId={widgetJSId}&key={key}&idx={idx}&api_user_id={api_user_id}&lang={lang}&format={format}&pubImpId={pubImpId}&testMode={testMode}]

Server-to-Server + Native2Image [GET]​

Get a sample response of Outbrain content recommendations.

  • Parameters

    • portalUrl (required, URL, 'https://lp.outbrain.com/increase-sales-native-ads/') ... A URL representing the context where the ad placement is presented to users.
    • widgetJSId (required, string, 'NL_11') ... The ID of the widget, used for reporting by placement. Your Outbrain Account Manager will provide this. Each Widget_ID has a fixed number of recommendations and image size.
    • key (required, string, 'DEMOP1MN24J3E1MGLQ92067LH') ... The partner key
    • api_user_id (required, string, '38400000-8cf0-11bd-b23e-10b96e40000d') ... A unique user ID that identifies the user during the newsletter session. This must be provided by the hosting application, and can take any type of value or format. This functions similarly to user identifying cookies on the web. For mobile apps, it is mandatory to pass the Google or Apple Advertising ID.
    • lang (required, string, 'en') ... TThe 2-letter language code (ISO-639-1-alpha-2).
    • idx (required, number, '0') ... The current position of the widget relative to other widgets on the page: The first unit on page will have idx=0 while the second unit will have idx=1 and so on. For pages/views with only one widget installed, use idx=0 for each request.
    • pubImpId (required, string, 'abcd12345678') ...
    • format (required, string, 'image') ... static value
    • testMode (optional, string, 'true') ... static value
  • Request (application/json)

    • Headers

      User-Agent: "Chrome: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" X-Forwarded-For: 233.54.67.45

  • Response 302 (image/jpeg)