These endpoints are designed to handle queries for high volumes of data and return results within 5 minutes. For quicker response times and low volumes of data, use the Synchronous endpoints.
NoteResults from querying the asynchronous endpoints are in the form of a CSV. Refer to the CSV Response Parsing section for tips on parsing the results.
There are two options to obtain a CSV report asynchronously:
- Submit a request to an asynchronous endpoint and immediately receive a report download link. Poll a second endpoint until your report is ready at that download link.
- Submit a request to an asynchronous endpoint and wait to receive an email containing the report.
LimitationCurrently, CSV reports larger than 400MB will fail. Please refer to the Querying Guidelines section for tips on managing report size.
Standard TripleLift Reporting
asyncDownloadPublisherNetworkReport
asyncDownloadPublisherNetworkReportThis endpoint is used in Option 1, above. This endpoint uses the same parameters as the synchronous publisherNetworkReport endpoint (without the pagination-related fields cursor and size) and responds with a download link in the form of a pre-signed S3 URL.
LimitationThe pre-signed S3 URL expires 30 minutes after it is returned.
Example request:
query {
asyncDownloadPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-06-15"
endDate: "2024-07-30"
dimensions: [YMD, PUBLISHER_NAME]
metrics: [AD_REQUESTS, REVENUE]
)
}Example response:
{
"data": {
"asyncDownloadCTVPublisherNetworkReport": "https://triplelift-reporting-api-downloads.s3.amazonaws.com/9629b338-a654-4f95-ac4f-8b9dfafeb3ca/1735843508921/triplelift_report.csv?X-Amz-Security-Token=IQoJb3JpZ2luXNyF2CRFuvpB430YDTbzZLAIgYBV4T2uFp4np4zZ471RwMNeby0c3%2By3sOTtfYmjRr%2FMqxgUI2%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgwyNTU5OTMwMDUwOTEiDAdZ%2FwDCe8O1dvOekSqaBd9AC9BjQXtHukgmdGomyMnnW5qr72B617Xz976w10EfL3KyOyw9KRD5JSJt8Pz8FrRQ23131xlFF35YmH8OSIlvWWkNfGVJMk0vP8fvc7w99T6fgB5yF2KfMVufwH6Y8lQdd0o5%2BSLvG581NstAl7SzSaEuOIqo0j41qRkueVk2QZGX3t2lkkO4Gqmjq51lU3Oaue7Jl6D%2B%2Bag1%2BFOGGIclN%2BFvxE%2FfBVhLzC3R2GgEsIj2UBe5JMUwdubG9xuwCA09sySJecBcOYknyUT%2FuyLEPZ4IvyshDzZtqYJUW8VjnCFGxLKg5PBj6dcw7rRUVHKxv8PfAkOcyonWQv9yEg5NsDhQnxqJ8bwb9no3aL%2Bdr8EBUeAZhhazilmNpOK87sbg%2BaAxI2o4gIpaTYnAEA4hJpFu1FnNOD8pFMMZzURQaB1Rke4omarL93I7spcpWC20r%2F8vAFu7Ahf9JKt20ZKhx65Kpgvqgw5YjmWITw5K4tJjUpvnW234cuBuiFOwUaHovg%2BG9IjDuDZI5WyLCfKKe8gx3glLK6ZNF8h2FD6vUBAD8XJzo31ARDhcdytwke71h%2BlAsGng6A7Umt62mP%2B1yR%2B29Mw0bvngRjJiEk7xz%2FRFZeGkAwDL6lsmnfppzThir3BYyj0WHdpl9TzuD%2Bxy0%2BgKTJ7Amik1qSvJSfu5kHVthjIfQcD%2FOh%2Fmh4cSFP%2F7g7c24nYE1kUL4SuV2DkpbOJhWR4CNm9gloOEcTmNB79YascR%2FeogWaIO9uS9PvHN%2BlCB%2BNNDOIysQfn6h%2Foqd0AtQLp5bHP17FMzAnJk84fPhG4dBOWq56EB5ai1QC6ihsithiuerhstithre31HEadvXaXds9md9%2FPWOEBI2VbzN8Q3eG19yvzDKrdu7BjqxAWas1Pj8UcE%2B2kA42NrTK%2B3H17PnGJG%2FqXD4Rvcx2wC995mJFpJgDLOOkUNRbrp2MHjm3eshQ8F07BuDbq%2BiuI0LNuBHI0qFoK8%2FesX8mBXKURXmGRGsujZDtjNVwHhqRwmgYKjR5HeXbjUgkHfXMEkJPqupeonlfI%2Fb1Om%2B30f0E%2BT46rQxOb%2B4lK9KYFze2XQC%2Bkl19y5WU0RPD23jfqyA53T3M%2B1pNV6U%2FdjKNgdClQ%3D%3D&X-Amz-Algorithm=ABC-123-DFF&X-Amz-Date=20250102T184508Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1799&X-Amz-Credential=ASIIHHEIHTIHLWH%2F20250102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=14b12cbd349dbbc36acac145778aaaaaaaaaa06f57716b15dba1814"
}asyncDownloadReportStatus
asyncDownloadReportStatusThis is the polling endpoint mentioned in Option 1. It accepts the pre-signed S3 link in the response from asyncDownloadPublisherNetworkReport and asyncDownloadCTVPublisherNetworkReport and returns one of 3 possible status strings:
READY- the report is present in the download linkWAITING- the report is not ready yetERROR- the report request must be resubmitted
NotePlease refer to the GraphQL schema for this endpoint's status refresh rate to help define your poll interval.
asyncEmailPublisherNetworkReport
asyncEmailPublisherNetworkReportThis endpoint is used in Option 2. It uses in the same parameters as the synchronous publisherNetworkReport endpoint (without the pagination-related fields cursor and size), as well as a list of valid email addresses for the report recipients. It returns true if the request was successfully received, and false otherwise.
LimitationNote that
asyncEmailPublisherNetworkReporthas an email size limit of 10MB. Any email exceeding the limit will fail to send.
Example request:
query {
asyncEmailPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-06-15"
endDate: "2024-07-30"
dimensions: [YMD, PUBLISHER_NAME]
metrics: [AD_REQUESTS, REVENUE]
filters: []
emails: ["EMAIL_1", "EMAIL_2"]
)
}Example response:
{
"data": {
"asyncEmailPublisherNetworkReport": true
}CTV TripleLift Reporting
asyncDownloadCTVPublisherNetworkReport
asyncDownloadCTVPublisherNetworkReportThis endpoint is used in Option 1, above. This endpoint uses the same parameters as the synchronous ctvPublisherNetworkReport endpoint (without the pagination-related fields cursor and size) and responds with a download link in the form of a pre-signed S3 URL.
LimitationThe pre-signed S3 URL expires 30 minutes after it is returned.
Example request
query {
asyncDownloadCTVPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-11-15"
endDate: "2024-12-15"
dimensions: [YMD, PUBLISHER_NAME, ORTB_CONTENT_GENRE]
metrics: [AD_REQUESTS, RENDERED, REVENUE, VIDEO_COMPLETIONS]
)
}Example response
{
"data": {
"asyncDownloadCTVPublisherNetworkReport": "https://triplelift-reporting-api-downloads.s3.amazonaws.com/9629b338-a654-4f95-ac4f-8b9dfafeb3ca/1735843508921/triplelift_report.csv?X-Amz-Security-Token=IQoJb3JpZ2luXNyF2CRFuvpB430YDTbzZLAIgYBV4T2uFp4np4zZ471RwMNeby0c3%2By3sOTtfYmjRr%2FMqxgUI2%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgwyNTU5OTMwMDUwOTEiDAdZ%2FwDCe8O1dvOekSqaBd9AC9BjQXtHukgmdGomyMnnW5qr72B617Xz976w10EfL3KyOyw9KRD5JSJt8Pz8FrRQ23131xlFF35YmH8OSIlvWWkNfGVJMk0vP8fvc7w99T6fgB5yF2KfMVufwH6Y8lQdd0o5%2BSLvG581NstAl7SzSaEuOIqo0j41qRkueVk2QZGX3t2lkkO4Gqmjq51lU3Oaue7Jl6D%2B%2Bag1%2BFOGGIclN%2BFvxE%2FfBVhLzC3R2GgEsIj2UBe5JMUwdubG9xuwCA09sySJecBcOYknyUT%2FuyLEPZ4IvyshDzZtqYJUW8VjnCFGxLKg5PBj6dcw7rRUVHKxv8PfAkOcyonWQv9yEg5NsDhQnxqJ8bwb9no3aL%2Bdr8EBUeAZhhazilmNpOK87sbg%2BaAxI2o4gIpaTYnAEA4hJpFu1FnNOD8pFMMZzURQaB1Rke4omarL93I7spcpWC20r%2F8vAFu7Ahf9JKt20ZKhx65Kpgvqgw5YjmWITw5K4tJjUpvnW234cuBuiFOwUaHovg%2BG9IjDuDZI5WyLCfKKe8gx3glLK6ZNF8h2FD6vUBAD8XJzo31ARDhcdytwke71h%2BlAsGng6A7Umt62mP%2B1yR%2B29Mw0bvngRjJiEk7xz%2FRFZeGkAwDL6lsmnfppzThir3BYyj0WHdpl9TzuD%2Bxy0%2BgKTJ7Amik1qSvJSfu5kHVthjIfQcD%2FOh%2Fmh4cSFP%2F7g7c24nYE1kUL4SuV2DkpbOJhWR4CNm9gloOEcTmNB79YascR%2FeogWaIO9uS9PvHN%2BlCB%2BNNDOIysQfn6h%2Foqd0AtQLp5bHP17FMzAnJk84fPhG4dBOWq56EB5ai1QC6ihsithiuerhstithre31HEadvXaXds9md9%2FPWOEBI2VbzN8Q3eG19yvzDKrdu7BjqxAWas1Pj8UcE%2B2kA42NrTK%2B3H17PnGJG%2FqXD4Rvcx2wC995mJFpJgDLOOkUNRbrp2MHjm3eshQ8F07BuDbq%2BiuI0LNuBHI0qFoK8%2FesX8mBXKURXmGRGsujZDtjNVwHhqRwmgYKjR5HeXbjUgkHfXMEkJPqupeonlfI%2Fb1Om%2B30f0E%2BT46rQxOb%2B4lK9KYFze2XQC%2Bkl19y5WU0RPD23jfqyA53T3M%2B1pNV6U%2FdjKNgdClQ%3D%3D&X-Amz-Algorithm=ABC-123-DFF&X-Amz-Date=20250102T184508Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1799&X-Amz-Credential=ASIIHHEIHTIHLWH%2F20250102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=14b12cbd349dbbc36acac145778aaaaaaaaaa06f57716b15dba1814"
}asyncEmailCTVPublisherNetworkReport
asyncEmailCTVPublisherNetworkReportThis endpoint is used in Option 2. It uses the same parameters as the synchronous ctvPublisherNetworkReport endpoint (without the pagination-related fields cursor and size), as well as a list of valid email addresses for the report recipients. The endpoint returns true if the request was successfully received and false if otherwise.
LimitationNote that
asyncEmailCTVPublisherNetworkReporthas an email size limit of 10MB. Any email exceeding the limit will fail to send.
Example request:
query {
asyncEmailCTVPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-11-15"
endDate: "2024-12-30"
dimensions: [YMD, PUBLISHER_NAME]
metrics: [AD_REQUESTS, REVENUE]
filters: []
emails: ["EMAIL_1", "EMAIL_2"]
)
}Example response:
{
"data": {
"asyncEmailCTVPublisherNetworkReport": true
}