Distribution
Endpoints for Distribution
Endpoints for Distribution
GET/api/v1/distribution/titles
Authentication: Bearer token (JWT)
diProductCodestringRequired when parent is presentproductNamesarray of stringRequired when parent is presentpublicationDaysstringRequired when parent is present[
{
"diProductCode": "ABC",
"productNames": [],
"publicationDays": "4"
}
]unauthorized
This response has no body.
forbiddenResource
messageCodestringRequiredmessagestringerrorsarray of FieldErrorRequired7 fieldserrorsinternalServerError
curlcurl https://api.subrite.no/api/v1/distribution/titles \
--header 'Authorization: Bearer <token>'GET/api/v1/distribution/runs
Authentication: Bearer token (JWT)
pagenumberOptional1minimum: 1takenumberOptional10minimum: 1maximum: 50orderBystringOptional"createdAt"Allowed values: "createdAt", "id", "updatedAt"orderDirectionstringOptionalPOST/api/v1/distribution/runs
Authentication: Bearer token (JWT)
application/jsondiProductCodestringRequiredpattern: /^[A-Za-z0-9]{1,5}$/distributionDatestringRequiredGET/api/v1/distribution/runs/{id}
Authentication: Bearer token (JWT)
idnumberRequiredGET/api/v1/distribution/files/{id}/download
Authentication: Bearer token (JWT)
idnumberRequiredThe XML file, ISO-8859-1 encoded
fieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "string",
"message": "string",
"errors": [
{}
]
}"desc"Allowed values: "asc", "desc"itemsarray of DistributionRunResponseDtoRequired11 fieldsitemsidnumberRequired when parent is presentField path: items[].iddiProductCodestringRequired when parent is presentField path: items[].diProductCodedistributionDatestringRequired when parent is presentField path: items[].distributionDatetransTypeDISTRIBUTION_TRANS_TYPERequired when parent is presentField path: items[].transType"C", "T"statusDISTRIBUTION_RUN_STATUSRequired when parent is presentField path: items[].status"queued", "started", "completed", "failed"startedBystringRequired when parent is presentField path: items[].startedBygeneratedAtstring (date-time)Required when parent is presentField path: items[].generatedAtaddressParseFailureCountnumberRequired when parent is presentField path: items[].addressParseFailureCountaddressStoppedCountnumberRequired when parent is presentField path: items[].addressStoppedCounterrorstringRequired when parent is presentField path: items[].errorfilesarray of DistributionFileResponseDtoRequired when parent is presentField path: items[].files5 fieldsitems[].filesidnumberRequired when parent is presentField path: items[].files[].idkindDISTRIBUTION_FILE_KINDRequired when parent is presentField path: items[].files[].kind"subscriber_deliveries", "messages", "single_copy_retailers", "single_copy_quantities"fileNamestringRequired when parent is presentField path: items[].files[].fileNamebyteSizenumberRequired when parent is presentField path: items[].files[].byteSizemetaPageMetaRequired6 fieldsmetapagenumberRequiredField path: meta.pagetakenumberRequiredField path: meta.takecountnumberRequiredField path: meta.countpageCountnumberRequiredField path: meta.pageCounthasPreviousPagebooleanRequiredField path: meta.hasPreviousPagehasNextPagebooleanRequiredField path: meta.hasNextPage{
"items": [
{
"files": []
}
],
"meta": {
"page": 0,
"take": 0,
"count": 0,
"pageCount": 0,
"hasPreviousPage": true,
"hasNextPage": true
}
}badRequest
messageCodestringRequired"badRequest"messagestringerrorsarray of FieldErrorunauthorized
This response has no body.
forbiddenResource
{
"messageCode": "string",
"message": "string",
"errors": [
{}
]
}internalServerError
curlcurl https://api.subrite.no/api/v1/distribution/runs \
--header 'Authorization: Bearer <token>'pattern: /^\d{4}-\d{2}-\d{2}$/{
"diProductCode": "ABC",
"distributionDate": "2026-08-27"
}idnumberRequireddiProductCodestringRequireddistributionDatestringRequiredtransTypeDISTRIBUTION_TRANS_TYPERequired"C", "T"statusDISTRIBUTION_RUN_STATUSRequired"queued", "started", "completed", "failed"startedBystringRequiredgeneratedAtstring (date-time)RequiredaddressParseFailureCountnumberRequiredaddressStoppedCountnumberRequirederrorstringRequiredfilesarray of DistributionFileResponseDtoRequired5 fieldsfilesidnumberRequired when parent is presentField path: files[].idkindDISTRIBUTION_FILE_KINDRequired when parent is presentField path: files[].kind"subscriber_deliveries", "messages", "single_copy_retailers", "single_copy_quantities"fileNamestringRequired when parent is presentField path: files[].fileNamebyteSizenumberRequired when parent is presentField path: files[].byteSizerowCountnumberRequired when parent is presentField path: files[].rowCountaddressParseFailuresarray of AddressParseFailureDtoRequired5 fieldsaddressParseFailuresmemberPackageIdnumberRequired when parent is presentField path: addressParseFailures[].memberPackageIdmemberNumbernumberRequired when parent is presentField path: addressParseFailures[].memberNumbernamestringRequired when parent is presentField path: addressParseFailures[].nameline1stringRequired when parent is presentField path: addressParseFailures[].line1{
"id": 0,
"diProductCode": "string",
"distributionDate": "2026-08-27",
"transType": "C",
"status": "queued",
"startedBy": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"addressParseFailureCount": 0,
"addressStoppedCount": 0,
"error": "string",
"files": [
{}
],
"addressParseFailures": [
{}
]
}Body validation failed, or the tenant has no DI customer code
messageCodestringRequired"badRequest", "distributionCustomerSystemMissing"unauthorized
This response has no body.
DI is not enabled for the tenant, or the user lacks access to data exports
messageCodestringRequired"distributionDisabled", "forbiddenResource"distributionTitleNotFound
messageCodestringRequired"distributionTitleNotFound"messageA run for this title and date already exists, or another run of the title is unfinished
messageCodestringRequired"distributionRunExists", "distributionRunInProgress"internalServerError
distributionQueueFailed
messageCodestringRequired"distributionQueueFailed"messagecurlcurl https://api.subrite.no/api/v1/distribution/runs \
--request POST \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"diProductCode": "ABC",
"distributionDate": "2026-08-27"
}'DistributionRunDetailResponseDto{
"id": 0,
"diProductCode": "string",
"distributionDate": "2026-08-27",
"transType": "C",
"status": "queued",
"startedBy": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"addressParseFailureCount": 0,
"addressStoppedCount": 0,
"error": "string",
"files": [
{}
],
"addressParseFailures": [
{}
]
}badRequest
Same fields as List distribution runs, newest distribution date first (400).
{
"messageCode": "badRequest",
"message": "string",
"errors": [
{}
]
}unauthorized
This response has no body.
forbiddenResource
{
"messageCode": "string",
"message": "string",
"errors": [
{}
]
}distributionRunNotFound
messageCodestringRequired"distributionRunNotFound"messagestringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is present{
"messageCode": "distributionRunNotFound",
"message": "string",
"errors": [
{}
]
}internalServerError
curlcurl 'https://api.subrite.no/api/v1/distribution/runs/{id}' \
--header 'Authorization: Bearer <token>'No named fields are defined for this schema.
badRequest
Same fields as List distribution runs, newest distribution date first (400).
{
"messageCode": "badRequest",
"message": "string",
"errors": [
{}
]
}unauthorized
This response has no body.
forbiddenResource
{
"messageCode": "string",
"message": "string",
"errors": [
{}
]
}distributionFileNotFound
messageCodestringRequired"distributionFileNotFound"messagestringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCode{
"messageCode": "distributionFileNotFound",
"message": "string",
"errors": [
{}
]
}internalServerError
distributionFileDownloadFailed
messageCodestringRequired"distributionFileDownloadFailed"messagestringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCode{
"messageCode": "distributionFileDownloadFailed",
"message": "string",
"errors": [
{}
]
}curlcurl 'https://api.subrite.no/api/v1/distribution/files/{id}/download' \
--header 'Authorization: Bearer <token>'rowCountnumberRequired when parent is presentField path: items[].files[].rowCounterrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "badRequest",
"message": "string",
"errors": [
{}
]
}stoppedbooleanRequired when parent is presentField path: addressParseFailures[].stoppedmessagestringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "badRequest",
"message": "string",
"errors": [
{}
]
}messagestringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "distributionDisabled",
"message": "string",
"errors": [
{}
]
}stringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "distributionTitleNotFound",
"message": "string",
"errors": [
{}
]
}messagestringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "distributionRunExists",
"message": "string",
"errors": [
{}
]
}{
"messageCode": "string",
"message": "string",
"errors": [
{}
]
}stringerrorsarray of FieldErrorRequired7 fieldserrorsfieldstringRequired when parent is presentField path: errors[].fieldfieldValuestringRequired when parent is presentField path: errors[].fieldValueidentifierstringRequired when parent is presentField path: errors[].identifieridentifierValuestringRequired when parent is presentField path: errors[].identifierValuemessageCodestringRequired when parent is presentField path: errors[].messageCodemessagestringField path: errors[].messageerrorTypestringRequired when parent is presentField path: errors[].errorType{
"messageCode": "distributionQueueFailed",
"message": "string",
"errors": [
{}
]
}messagestringerrorTypestringRequired when parent is presentField path: errors[].errorTypemessagestringerrorTypestringRequired when parent is presentField path: errors[].errorType