openapi: 3.0.2
info:
title: Sourcepoint Reporting GDPR API
version: 1.0.0
description: Sourcepoint Technologies API for retrieving GDPR TCF dashboard report data.
servers:
- url: https://portal.sourcepoint.com/api/external/v1/reports
paths:
/tcfv2/dashboard-v2-pv-users/{periodFilter}:
post:
tags:
- GDPR reporting API
description: Returns pageview data for properties that have implemented GDPR.
Include your
API key in the provided **Header** field under **AUTHORIZATION** in the right-hand pane before
trying your request.
In addition to the API key, you will also need to include `startDate`,
`endDate`, and `siteId` in your request.
summary: GDPR pageview data
parameters:
- $ref: '#/components/parameters/periodFilter'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/gdprRequestBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/gdprPvResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
/tcfv2/dashboard-v2-messages/{periodFilter}:
post:
tags:
- GDPR reporting API
description: Returns message data for properties that have implemented GDPR.
Include your
API key in the provided **Header** field under **AUTHORIZATION** in the right-hand pane before
trying your request.
In addition to the API key, you will also need to include `startDate`,
`endDate`, and `siteId` in your request.
summary: GDPR message data
parameters:
- $ref: '#/components/parameters/periodFilter'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/gdprRequestBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/gdprMsgResponse'
'401':
$ref: '#/components/responses/UnauthorizedError'
components:
schemas:
gdprRequestBody:
description: Request body for GDPR reporting data request
type: object
properties:
startDate:
type: string
description: Start date for the periodization. Format YYYY-MM-DD
example: YYYY-MM-DD
endDate:
type: string
description: End date for the periodization. Format YYYY-MM-DD
example: YYYY-MM-DD
siteId:
type: array
description: Array of property IDs in the Sourcepoint portal that will be included in the report
data.
items:
type: string
example:
- 22
- 1584
geo:
type: array
description: Array of alpha-2 country codes (ISO 3166-1) that will be included in the report
data. Preset regions (EU, EEA, etc...) is *not* permitted. If geo property is omitted then
*all* countries and regions will be included in the report data.
items:
type: string
example:
- DE
- FR
device:
type: array
items:
type: string
enum:
- desktop
- mobile
- tablet
- tv
description: Array of devices that will be included in the report data. If device property is
omitted then *all* devices will be included in report data.
example:
- desktop
- mobile
browser:
type: array
description: Array of browsers that will be included in the report data. If browser property
is omitted then *all* browsers will be included in report data.
items:
type: string
enum:
- Amazon Silk
- Android Browser
- Bada
- BlackBerry
- Chrome
- Chromium
- Epiphany
- Firefox
- Focus
- Generic
- Googlebot
- Internet Explorer
- K-Meleon
- Maxthon
- Microsoft Edge
- MZ Browser
- NAVER Whale Browser
- Opera
- Opera Coast
- PhantomJS
- Puffin
- QupZilla
- Safari
- Sailfish
- Samsung Internet for Android
- SeaMonkey
- Sleipnir
- Swing
- Tizen
- UC Browser
- WebOS Browser
- WeChat
- Yandex Browser
example:
- Firefox
- Chrome
os:
type: array
description: Array of operating systems that will be included in the report data. If os property
is omitted then *all* operating systems will be included in report data.
items:
type: string
enum:
- Windows
- iOS
- Windows Phone
- MacOS
- Android
- WebOS
- BlackBerry
- Bada
- Tizen
- Linux
- Chrome OS
- Playstation 4
- Roku
example:
- Windows
- MacOS
breakdownBy:
type: array
description: Array of different parameters that can be selected to breakdown/organize the returned
results. Options include geo, operating system (ua_os), device (ua_device), browser (ua_browser)
items:
type: string
enum:
- geo
- ua_os
- ua_device
- ua_browser
example:
- geo
required:
- startDate
- endDate
- siteId
gdprPvResponse:
type: object
description: Successful response for GDPR pageview report request
properties:
performanceData:
type: object
description: Ignore. For internal troubleshooting.
properties:
total:
type: integer
propertiesResults:
type: integer
results:
type: array
items:
type: object
properties:
ymd:
type: string
description: Year, month and day. Returned only for Daily periodization
example: '2023-09-02T00:00:00.000Z'
geo:
type: string
description: Geographic region to which the results pertain. Returned when request uses
geo in the breakdownBy parameter
example: DE
ua_os:
type: string
description: Operating system type to which the results pertain. Returned when request
uses ua_os in the breakdownBy parameter
example: macOS
ua_device:
type: string
description: Device type to which the results pertain. Returned when request uses ua_device
in the breakdownBy parameter
example: desktop
ua_browser:
type: string
description: Browser type to which the results pertain. Returned when request uses ua_browser
in the breakdownBy parameter
example: Chrome
site_id:
type: string
description: Property ID within the Sourcepoint portal
example: 12345
domain:
type: string
description: Domain reported upon
example: '"www.sourcepoint.com"'
pv:
type: string
description: Number of pageviews for the given periodization
example: 784
pv_status_opt_in_all:
type: string
description: Page views across users who have accepted all purposes and vendors on the
most recent version of the vendor list.
example: 218
pv_status_opt_out_all:
type: string
description: Page views across users who have rejected all purposes and vendors across
any version of the vendor list.
example: 51
pv_status_li_only:
type: string
description: Page views across users who selected Save and Exit across any version of
the vendor list if legitimate interest is a legal basis for at least one of your purposes.
example: 0
pv_status_other:
type: string
description: Page views across users who have made choices on the privacy manager that
do not fall into the categories Accept All, Reject All, Previous Accept All or, Legitimate
Interest Only on any version of the vendor list.
example: 0
pv_default_consent_only:
type: string
description: Page views across users who have not made any choices on the consent banner
on any version of the vendor list.
example: 496
pv_status_previous_optin_all:
type: string
description: Page views across users who have accepted all purposes and vendors on a previous
version of the vendor list. These users may be eligible to receive a re-consent experience.
example: 0
unique_users:
type: string
description: Total number of users for the selected properties in the configured periodization.
example: 372
user_status_opt_in_all:
type: string
description: Unique users who have accepted all purposes and vendors on the most recent
version of the vendor list.
example: 68
user_status_opt_out_all:
type: string
description: Unique users who have rejected all purposes and vendors across any version
of the vendor list.
example: 33
user_status_li_only:
type: string
description: Unique users who have clicked Save and Exit across any version of the vendor
list if you have legitimate interest as a legal basis for at least one of your purposes.
example: 0
user_status_other:
type: string
description: Unique users who have made choices on the privacy manager that do not fall
into the categories Accept All, Reject All, Previous Accept All or, Legitimate Interest
Only on any version of the vendor list.
example: 0
user_default_consent_only:
type: string
description: Unique users who have not made any choices on the consent banner on any version
of the vendor list.
example: 273
user_status_previous_optin_all:
type: string
description: Unique users who have accepted all purposes and vendors on a previous version
of the vendor list. These users may be eligible to receive a re-consent experience.
example: 0
gdprMsgResponse:
type: object
description: Successful response for GDPR message report request
properties:
performanceData:
type: object
description: Ignore. For internal troubleshooting.
properties:
total:
type: integer
messagesResults:
type: integer
results:
type: array
items:
type: object
properties:
ymd:
type: string
description: Year, month and day. Returned only for Daily periodization
example: '2023-09-02T00:00:00.000Z'
geo:
type: string
description: Geographic region to which the results pertain. Returned when request uses
geo in the breakdownBy parameter
example: DE
ua_os:
type: string
description: Operating system type to which the results pertain. Returned when request
uses ua_os in the breakdownBy parameter
example: macOS
ua_device:
type: string
description: Device type to which the results pertain. Returned when request uses ua_device
in the breakdownBy parameter
example: desktop
ua_browser:
type: string
description: Browser type to which the results pertain. Returned when request uses ua_browser
in the breakdownBy parameter
example: Chrome
site_id:
type: string
description: Property ID within the Sourcepoint portal
example: 12345
domain:
type: string
description: Domain reported upon
example: '"www.sourcepoint.com"'
messaged_users:
type: string
description: Unique users within the periodization who received a message.
example: 3
message_id:
type: string
description: Message ID. Typically will be the ID for the first layer message but can
be the ID of a privacy manager if consent action was given from a privacy manager without
viewing first layer message first.
example: 987654
privacy_manager_id:
type: string
description: Returned only when consent action was given from a privacy manager. If consent
action was given from a privacy manager without viewing a first layer message first
then message_id and privacy_manager_id will be the same.
example: 123456
msg_name:
type: string
description: Message name
example: '"2.20.21 Desktop TCF v2 Notice"'
msg_type:
type: string
description: 'Possible values: message-v1 | message-v2 | privacy-manager. message-v1 response
is a legacy response while message-v2 is the first layer message'
example: '"message-v2"'
msg_category_type:
type: string
description: The campaign type
example: '"gdpr"'
msg_sub_category_type:
type: string
description: 'The type of message delivered. Possible values: notice | privacy_manager
| subject_access_request | dsar | notice-tcf-v2 | notice-native | privacy_manager_ott
| notice_non_iab | privacy_manager_non_iab | ios | ccpa_ott | ccpa_pm | custom | native-ott'
example: '"notice-tcf-v2"'
total_actions:
type: string
description: Total number of end-user actions
example: 3
adjusted_actions:
type: string
description: Special processing to fix an issue
example: 3
message_opt_in_all:
type: string
description: Unique users within the periodization who received a message and then accepted
all vendors and purposes.
example: 3
message_opt_out_all:
type: string
description: Unique users within the periodization who received a message and then rejected
all vendors and purposes.
example: 0
message_li_only:
type: string
description: Unique users within the periodization who received a message and then clicked
Save and Exit on the privacy manager if you have legitimate interest as a legal basis
for at least one of your purposes.
example: 0
message_other:
type: string
description: Unique users within the periodization who received a message and then made
choices on the privacy manager that do not fall into the categories Accept All, Reject
All, Previous Accept All or, Legitimate Interest Only.
example: 0
message_previous_optin_to_all:
type: string
description: Unique users within the periodization who received a message and then made
choices on the privacy manager that do not fall into the categories Accept All, Reject
All, Previous Accept All or, Legitimate Interest Only. Property should always return
0.
example: 0
parameters:
periodFilter:
name: periodFilter
in: path
description: '- **Daily**: The maximum duration of this period is 31 days between the `startDate`
and `endDate`
- **Weekly**: A week is a period of 7 days that starts on a Monday and ends on a Sunday. If the
requested `startDate` is not a Monday, Sourcepoint will backdate the reporting period to the Monday
for the week in its reporting aggregation.
- **Monthly**: A month begins on the first day of that month. If the requested `startDate` is
not the first day of the month, Sourcepoint will backdate the reporting period to the first day
of the month in its reporting aggregation.
'
required: true
schema:
type: string
enum:
- daily
- weekly
- monthly
responses:
UnauthorizedError:
description: API key is missing or invalid
headers:
WWW-Authenticate:
schema:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
security:
- ApiKeyAuth: []
x-readme:
explorer-enabled: true
proxy-enabled: true