openapi: 3.0.2
info:
title: Sourcepoint GDPR TCF API
version: 1.0.0
description: Sourcepoint Technologies API for managing property and end-user GDPR TCF information.
servers:
- url: https://cdn.privacy-mgmt.com/consent/tcfv2
paths:
/consent/v3/history/{siteId}:
get:
tags:
- GDPR TCF end-user consent status
summary: Get end-user consent status
description: Returns end-user GDPR TCF consent status for a property. In addition to the `siteId`,
you will also need to include either the end-user's `consentUUID` or `authId`.
parameters:
- name: siteId
in: path
required: true
description: The property ID for the property in the Sourcepoint portal.
schema:
type: integer
- $ref: '#/components/parameters/consentUUID'
- $ref: '#/components/parameters/authId'
- $ref: '#/components/parameters/latest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/getConsentResponse'
/consent/v3/{siteId}/tcstring:
post:
tags:
- GDPR TCF end-user consent status
summary: Merge end-user consent status with identity provider
description: Merge an end-user's custom vendor consent profile with the information Sourcepoint
has for IAB vendors taken from a TCString that is provided. Though originally planned for the
German consortium *NetId*, it is available for any identity provider to confirm or revoke vendor
consent in one place
*Your organization will require their own CMP ID to use this API.
Please contact your Sourcepoint Client Support team if you require more information.*
parameters:
- name: siteId
in: path
required: true
description: The property ID for the property in the Sourcepoint portal.
schema:
type: integer
- $ref: '#/components/parameters/consentUUID'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
euconsent:
type: string
description: tcString for end-user
example: CPOA6HgPOA6HgFZABCDEBwCgAP_AAEwAAAYgIDpb_T7VbWFCWf59fvsgOYxXVMCeA
required:
- euconsent
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/mergeConsent'
/consent/v3/{siteId}:
delete:
tags:
- GDPR TCF end-user consent status
summary: Delete end-user consent status
description: Deletes end-user GDPR TCF consent status for a property. In addition to the `siteId`,
you will also need to include either the end-user's `consentUUID` or `authId`.
This
endpoint does not support mass deletions of end-user consent records. Please speak to your Sourcepoint
representative to execute any mass deletions.
parameters:
- name: siteId
in: path
required: true
description: The property ID for the property in the Sourcepoint portal.
schema:
type: integer
- $ref: '#/components/parameters/consentUUID'
- $ref: '#/components/parameters/authId'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
n:
type: integer
example: 1
ok:
type: integer
example: 1
deletedCount:
type: integer
example: 1
/vendor-list/vendor-purpose-mapping:
get:
tags:
- GDPR TCF vendor list
summary: Map vendors and purposes
description: 'Returns mapping of vendors and purposes with legal bases for the vendor list associated
with the property.
**Note**: *For each vendor, the response will only include purposes that have a configured legal
basis (**Consent**, **Legitimate Interest**, **Disclosure Only**). Any purposes that are **Not
Applicable** will not be returned in the response.*
*Additionally, vendors will need at least one purpose with a configured legal basis to be returned
in the response.*'
parameters:
- name: siteId
in: query
required: true
description: The property ID for the property in the Sourcepoint portal.
schema:
type: integer
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/mapResponse'
/vendor-list/vendor-url-mapping:
post:
tags:
- GDPR TCF vendor list
summary: Vendor URL mapping
description: Intended to be used by publishing systems to help determine if a vendor URL has been
defined appropriately in the Sourcepoint system. This API can help developers that are integrating
with Content Management Systems (CMS) verify that a URL referenced in content can be related to
vendor and purpose consent preferences which can be queried and set based on user actions.
Before
utilizing this API, ensure [vendor URL mappings are configured for the vendor](https://docs.sourcepoint.com/hc/en-us/articles/4403605562259#h_01H08080CKBEKA9KBF6AHFB1TC)
in the Sourcepoint portal.
parameters:
- name: allCategoryMapping
in: query
required: false
description: Will return `categoryMapping` array which details all vendors and their configured
purposes for the property
schema:
type: boolean
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
siteId:
type: string
description: Property ID for the property in the Sourcepoint portal.
example: 1234
vendorUrls:
type: array
description: Array of URLs to be matched against
items:
type: string
description: URL
example: www.sourcepoint.com
required:
- siteId
- vendorUrls
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/vendorURLMappingResponse'
/vendor-list/vendors:
get:
tags:
- GDPR TCF vendor list
summary: Retrieve vendors on vendor list
description: Returns a list of vendors for the GDPR TCF vendor list associated with the specified
property.
parameters:
- name: siteId
in: query
required: true
description: The property ID for the property in the Sourcepoint portal.
schema:
type: integer
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/vendors'
components:
schemas:
mapResponse:
description: Returned response to vendor purpose mapping
type: array
items:
type: object
properties:
vendorId:
type: string
description: Unique ID for a vendor
example: abcd2fbeb8e05c306f2aefgh
categories:
type: array
description: Details purposes configured for each vendor
items:
type: object
properties:
id:
type: string
description: Unique ID for purpose
example: 1234e01e32bd4d27654b5678
type:
type: string
description: Legal basis configured for purpose
example: CONSENT
getConsentResponse:
description: Returned response to get consent request
type: array
items:
type: object
properties:
_id:
type: string
description: Unique identifier for the consent record
example: 6842d825666f5a1254fd263f
siteId:
type: number
description: Sourcepoint ID for property.
example: 39470
dateCreated:
type: string
description: Date consent status was created
example: '2023-05-08T15:37:18.365Z'
consentUUID:
type: string
description: Consent UUID for end-user
example: 1234f5a8-67c9-4a38-a7cd-6fe4f30a5678
messageId:
type: integer
description: ID of the first layer message shown to end-user
example: 123456
vendorListId:
type: string
description: ID of the vendor list
example: 9876a560b8e05c06542b2a31
vendors:
type: array
description: Vendors consented to
items:
anyOf:
- $ref: '#/components/schemas/IABAndCustomVendors'
- $ref: '#/components/schemas/GoogleATPVendors'
legIntVendors:
type: array
description: Vendors consented to who use legitimate interest as a legal basis for at least
one purpose.
items:
anyOf:
- $ref: '#/components/schemas/IABAndCustomVendors'
- $ref: '#/components/schemas/GoogleATPVendors'
categories:
type: array
description: Purposes consented to
items:
anyOf:
- $ref: '#/components/schemas/IABPurposes'
- $ref: '#/components/schemas/customPurposes'
legIntCategories:
type: array
description: Purposes consented to who use legitimate interest as a legal basis.
items:
anyOf:
- $ref: '#/components/schemas/IABPurposes'
- $ref: '#/components/schemas/customPurposes'
IABAndCustomVendors:
description: Returns IAB and Custom vendor information
properties:
id:
type: string
description: Sourcepoint vendor ID
example: 5f23e826b8e05c0c0abcdef
name:
type: string
description: Vendor name
example: IAB vendor example
vendorType:
type: string
description: Vendor type
example: IAB
GoogleATPVendors:
description: Returns Google ATP vendor information
properties:
id:
type: string
description: Sourcepoint vendor ID
example: 1234abcd5678efgh0d4fdb8f
name:
type: string
description: Vendor name
example: Google ATP vendor
vendorType:
type: string
description: Vendor type
example: CUSTOM
googleId:
type: integer
description: Google vendor ID
example: 1234
IABPurposes:
description: Returns IAB purpose information
properties:
id:
type: string
description: Sourcepoint purpose ID
example: 5fd7e01e32bd4d27654ba1d5
name:
type: string
description: Purpose name
example: Store and/or access information on a device
iabPurposeRef:
properties:
name:
type: string
description: Purpose name
example: Store and/or access information on a device
iabId:
type: integer
description: IAB purpose id
example: 1
customPurposes:
description: Returns custom purpose information
properties:
id:
type: string
description: Sourcepoint purpose ID
example: 5fdbbcdf4f3f9789140e23a0
name:
type: string
description: Purpose name
example: Custom purpose example
mergeConsent:
description: Returns end-user consent after merging consent profile
properties:
userConsentRecord:
type: object
properties:
categories:
type: array
description: Purposes consented to by end-user
items:
type: string
description: Sourcepoint's purpose ID
example: 5f9aa28f7ab71b20a1b12345
legIntCategories:
type: array
description: Purposes consented to who use legitimate interest as a legal basis.
items:
type: string
description: Sourcepoint's purpose ID
example: 5f9aa28fabcd1b20a1babcde
vendors:
type: array
description: Vendors consented to by end-user
items:
type: string
description: Sourcepoint's vendor ID
example: 12343c6c091a5047885cf964
legIntVendors:
type: array
description: Vendors consented to by end-user who use legitimate interest as a legal basis
for at least one purpose
items:
type: string
description: Sourcepoint's vendor ID
example: abcd3c6c12345047885cf964
id:
type: string
description: Request ID
example: 645b8e5f19a120048b8d24f8
consentUUID:
type: string
description: consentUUID for end-user
example: ab126231-e899-4fbb-b7e2-e8f762f080e6_14
siteId:
type: integer
description: Property ID for the property in the Sourcepoint portal.
example: 1234
euconsent:
type: string
description: tcString for end-user
example: 12344IAPrf4IAAjABCENDDCgAP_AAAAAACiQI5hV5DrMTWFAUXxZQNsgOYgU1sATIGQCCBCAAyABAAGA8AQA0WESEASAAAACAAAAowIBAAAEGAFEAAAAAAAEABEAAAQAgAAIIABAAAEQAAIAAAgIAAAAAAAAAAABAAAAmAAQIcKAREAAAIAQIgAAAAABAAAAAgIABAAAAAAAAAAAAgAAAAAAAAAAAAACARAAgAAAPCQKQAEAALAAqABkADkAHwAgABkADQAHkARABFACYAE8AN4AcwA_ACEAENAIgAiQBLACaAFKALcAYcA-wD9AIoARoAjgBJgCUgFzAMUAbQA3ACRAFDgLzAYMAw0AAMgAaAA8gCIAIoATAAngBSADEAHMAPwAhoBEAESAKUAWIAtwBowD7AP0Ai0BHAEdAJSAXMAvIBigDaAG4APsAi8BIgChwF5gMNAZIAywBrIDgigAUAC4AJAA2gEiALqAAA.YAAAAAAAAAAA
vendorListId:
type: string
description: Vendor list ID
example: 5f9aa290a228638af82db511
fromNetId:
type: boolean
description: Is the consent profile from an end-user using the netID single sign-on?
example: true
dateCreated:
type: string
description: Timestamp on the request
example: '2023-05-10T12:30:23.918Z'
__v:
type: integer
description: WIP
example: 0
appendedConsentUUID:
type: string
description: consentUUID for end-user after request
example: ab126231-e899-4fbb-b7e2-e8f762f080e6_14_19
vendors:
description: Returns vendors on the vendor list associated with the property.
properties:
vendors:
type: array
items:
type: object
properties:
_id:
type: string
description: ID of the vendor
example: 623454ae293cdf6fc91234
name:
type: string
description: Name of the vendor
example: Vendor name
vendorURLMappingResponse:
description: Returns vendor URL mapping for property
properties:
vendorUrlMapping:
type: array
items:
type: object
properties:
url:
type: string
description: URL that is being mapped and has been passed in the body of the request.
example: www.sourcepoint.com
matchPattern:
type: array
description: Pattern(s) matched for a particular vendor.
items:
type: object
properties:
ruleBoolean:
type: boolean
description: Boolean field in the pattern configuration for the vendor (i.e. MUST
or MUST NOT).
example: true
type:
type: string
description: Type of match made to the urlPattern (e.g. "MATCH", "BEGINS_WITH",
"ENDS_WITH")
example: CONTAINS
urlPattern:
type: string
description: URL pattern for comparison configured in Sourcepoint portal for vendor
example: sourcepoint.com
rules:
type: array
description: All patterns configured for the vendor.
items:
type: object
properties:
patterns:
type: array
items:
type: object
properties:
ruleBoolean:
type: boolean
description: Boolean field in the pattern configuration for the vendor (i.e.
MUST or MUST NOT).
example: true
type:
type: string
description: Type of match made to the urlPattern (e.g. "MATCH", "BEGINS_WITH",
"ENDS_WITH")
example: CONTAINS
urlPattern:
type: string
description: URL pattern for comparison configured in Sourcepoint portal for
vendor
example: sourcepoint.com
vendorId:
type: string
description: Sourcepoint ID for the vendor
example: 5f23e826b8e05c0c0d4fdb8f
vendorType:
type: string
description: Type of vendor (e.g. IAB, Custom, etc...)
example: IAB
iabId:
type: integer
description: If available, the vendor's IAB ID.
example: 590
name:
type: string
description: Name of the vendor
example: Sourcepoint Technologies, Inc. (non-CMP)
description:
type: string
description: If configured for the vendor in the Sourcepoint portal, the description of
the vendor.
example: Description example for the vendor
policyUrl:
type: string
description: If available, the URL to the vendor's privacy policy
example: https://www.sourcepoint.com/privacy-notice/
purposes:
type: array
description: Details the purposes configured for the vendor.
items:
type: object
properties:
id:
type: string
description: ID for purpose
example: 5fdbbcdf4f3f9789140e23a0
type:
type: string
description: Legal basis configured for the purpose.
example: CONSENT
categoryMapping:
description: Only returned if the allCategoryMapping query parameter is set to true. Details
**all** the vendors and their configured purposes for the property.
type: array
items:
type: object
properties:
vendorId:
type: string
description: Sourcepoint ID for the vendor
example: 23452fbeb8e05c3057240f85
categories:
type: array
items:
type: object
properties:
id:
type: string
description: ID for purpose
example: 5fd7e01e32bd4d27654ba1d5
type:
type: string
description: Legal basis configured for the purpose.
example: LEGITIMATE_INTEREST
parameters:
consentUUID:
name: consentUUID
in: query
description: Retrieved from the first-party cookie consentUUID
required: false
schema:
type: string
authId:
name: authId
in: query
description: Retrieved from the first-party cookie authId
required: false
schema:
type: string
latest:
name: latest
in: query
description: (Optional) Only return the latest consent record for the end-user.
required: false
schema:
type: boolean
x-readme:
explorer-enabled: true
proxy-enabled: true