### GET /attachment/{attachmentId}
Source: https://csp-api.campaignregistry.com/v2/openapi.json
Downloads any file that is attached to an existing campaign, including MMS sample media files and supporting documents. To download, first determine the file’s uuid value from the appropriate GET endpoint and pass it in the attachmentId parameter. For example, to download a specific MMS sample media file, first use the GET /campaign/{campaignId}/mms endpoint to list the campaign’s attached files and see their uuid attributes.
```markdown
### Parameters
- **attachmentId** (string, path, required): The unique ID of the attached file.
### Responses
#### 200 - Success
Empty response body
#### 401 - Unauthorized access. Check your API credentials.
Unauthorized access. Check your API credentials.
#### 429 - Too many requests.
Too many requests.
### Example Usage
```bash
curl -X GET "/v2/attachment/{attachmentId}"
```
```
--------------------------------
### GET /version
Source: https://csp-api.campaignregistry.com/v2/openapi.json
Returns the currently running version of the API.
```markdown
### Responses
#### 200 - Success
#### 401 - Unauthorized access. Check your API credentials.
Unauthorized access. Check your API credentials.
### Example Usage
```bash
curl -X GET "/v2/version"
```
```
--------------------------------
### GET /tag
Source: https://csp-api.campaignregistry.com/v2/openapi.json
Gets a list of tags created under the current CSP account. Returns a paginated list of tags that match the supplied filter criteria. Not specifying any parameters will return all tags.
```markdown
### Parameters
- **name** (string, query, optional): The tag name.
- **recordId** (string, query, optional): The record ID. For brands, this is the brandId. For campaigns, it is the campaignId.
- **recordType** (string (BRAND|CAMPAIGN), query, optional): The record type associated with the tag.
- **page** (integer (int32), query, optional): The requested page of the result.
- **recordsPerPage** (integer (int32), query, optional): The number of records to return per page in the result. Max size is 500
### Responses
#### 200 - Success
#### 400 - Request failed. Refer to the included TCR error code and message for more information.
recordId.uuid value from the appropriate GET endpoint and pass it in the attachmentId parameter. For example, to delete a specific MMS sample media file, first use the GET /campaign/{campaignId}/mms endpoint to list the campaign’s attached files and see their uuid attributes.
```markdown
### Parameters
- **attachmentId** (string, path, required): The unique ID of the attached file.
### Responses
#### 204 - Success
Empty response body
#### 401 - Unauthorized access. Check your API credentials.
Unauthorized access. Check your API credentials.
#### 429 - Too many requests.
Too many requests.
### Example Usage
```bash
curl -X DELETE "/v2/attachment/{attachmentId}"
```
```
--------------------------------
### GET /enum/extVettingProvider
Source: https://csp-api.campaignregistry.com/v2/openapi.json
Returns a list of all external vetting partners that participate in the TCR ecosystem. Results include the vetting partner’s name and the types of brand vetting it provides. In some scenarios, submitting a brand for external vetting will provide access to more use cases or possibly better throughput terms with some MNOs.
```markdown
### Responses
#### 200 - Success
- Array of string
#### 401 - Unauthorized access. Check your API credentials.
Unauthorized access. Check your API credentials.
#### 429 - Too many requests.
Too many requests.
### Example Usage
```bash
curl -X GET "/v2/enum/extVettingProvider"
```
```
--------------------------------
### GET /partnerCampaign/{campaignId}
Source: https://csp-api.campaignregistry.com/v2/openapi.json
Get details on a campaign shared with the CSP by a downstream partner.
```markdown
### Parameters
- **campaignId** (string, path, required): The unique ID that identifies the campaign.
- **cnpMigration** (boolean, query, optional): Indicates whether the campaign is in the process of CNP migration.
### Responses
#### 200 - Success
#### 400 - Request failed. Refer to the included TCR error code and message for more information.
Returns a list of all rejection categories for use when rejecting a campaign in the CSP and DCA APIs.
Possible categories include:| Property | Data Type | Description |
|---|---|---|
| usecase | string |
The name of the use case. |
| monthlyFee | decimal |
The registration fee for the campaign, charged monthly. The campaign will auto-renew unless the renewal is canceled or the campaign is deactivated. |
| quarterlyFee | decimal |
The registration fee for the campaign, charged once every three months. The campaign will auto-renew unless the renewal is canceled or the campaign is deactivated. |
| annualFee | decimal |
The registration fee for the campaign, charged annually. The campaign will auto-renew unless the renewal is canceled or the campaign is deactivated. |
| minSubUsecase | integer |
The minimum number of sub-use cases required when registering a campaign under the specified use case. |
| maxSubUsecase | integer |
The maximum number of sub-use cases allowed when registering a campaign under the desired use case. If the value is 0, then no sub-use case is required. |
| mnoMetadata | array |
Map of MNO metadata where key is the “networkId” of the MNO and value is the MNO’s metadata. |
| Property | MNO Specific | Data Type | Description |
|---|---|---|---|
| mno | All MNOs | string |
Name of the MNO. |
| mnoSupport | All MNOs | boolean |
If false, the specified use case is not supported by the MNO. |
| mnoReview | All MNOs | boolean |
If true, the submitted campaign is subject to a manual MNO review process. Some MNOs provide campaign review statuses via TCR APIs. |
| qualify | All MNOs | boolean |
If false, the brand does not qualify for the desired use case on the MNO. The CSP should consider getting the brand vetted by one of TCR’s approved external vetting providers. |
| minMsgSamples | All MNOs | integer |
The minimum number of message samples required by the MNO for the desired use case. |
| reqSubscriberOptin | All MNOs | boolean |
If true, the MNO requires the subscriber to opt-into the campaign before the message can be sent. The opt-in mechanism can be a mobile or web opt-in. |
| reqSubscriberOptout | All MNOs | boolean |
If true, the MNO requires a campaign to support an opt-out mechanism through stop keywords such as STOP or QUIT. Upon receiving a STOP message from a subscriber, the campaign must immediately stop sending messages to the subscriber. |
| reqSubscriberHelp | All MNOs | boolean |
If true, the MNO requires the campaign to support an assistance mechanism through help key words such as HELP or INFO. |
| noEmbeddedLink | All MNOs | boolean |
If true, the MNO does not allow a call-to-action link/URL to be embedded in messages sent to the subscriber. |
| noEmbeddedPhone | All MNOs | boolean |
If true, the MNO forbids call-to-action phone numbers to be embedded in messages sent to the subscriber. |
| msgClass | AT&T | string |
Message class assigned to the campaign by AT&T. Please refer to the AT&T 10DLC guide for a complete list of available message classes and definitions. |
| tpm | AT&T | integer |
SMS message TPM (throughput per minute) assigned to the brand for the desired use case. |
| mmsTpm | AT&T | integer |
MMS message TPM (throughput per minute) assigned to the brand for the desired use case. |
| tpmScope | AT&T | string |
TPM restriction scope. Possible values include: CAMPAIGN or PHONE_NUMBER. If the scope is PHONE_NUMBER, then the TPM rate-limiting is imposed separately for each phone number provisioned to the campaign. A CAMPAIGN level scope indicates rate-limiting imposed for the entire campaign. |
| brandTier | T-Mobile | string |
Daily message volume assigned to the campaign based on brand tier or brand qualification. The daily volume restriction applies to brands across all campaigns and CSPs. Please contact your message service provider for updated T-Mobile terms. Possible values: LOW, LOWER_MID, UPPER_MID, TOP |
| brandDailyCap | T-Mobile | integer |
The number of messages allowed per day on the T-Mobile network. If the brandTier attribute is UNCAPPED, then this will be NULL. |
| Property | Data Type | Description |
|---|---|---|
| usecase | string |
The name of the use case. |
| monthlyFee | decimal |
The registration fee for the campaign, charged monthly. The campaign will auto-renew unless the renewal is canceled or the campaign is deactivated. |
| quarterlyFee | decimal |
The registration fee for the campaign, charged once every three months. The campaign will auto-renew unless the renewal is canceled or the campaign is deactivated. |
| annualFee | decimal |
The registration fee for the campaign, charged annually. The campaign will auto-renew unless the renewal is canceled or the campaign is deactivated. |
| minSubUsecase | integer |
The minimum number of sub-use cases required when registering a campaign under the specified use case. |
| maxSubUsecase | integer |
The maximum number of sub-use cases allowed when registering a campaign under the desired use case. If the value is 0, then no sub-use case is required. |
| mnoMetadata | array |
Map of MNO metadata where key is the “networkId” of the MNO and value is the MNO’s metadata. |
| Property | MNO Specific | Data Type | Description |
|---|---|---|---|
| mno | All MNOs | string |
Name of the MNO. |
| mnoSupport | All MNOs | boolean |
If false, the specified use case is not supported by the MNO. |
| mnoReview | All MNOs | boolean |
If true, the submitted campaign is subject to a manual MNO review process. Some MNOs provide campaign review statuses via TCR APIs. |
| qualify | All MNOs | boolean |
If false, the brand does not qualify for the desired use case on the MNO. The CSP should consider getting the brand vetted by one of TCR’s approved external vetting providers. |
| minMsgSamples | All MNOs | integer |
The minimum number of message samples required by the MNO for the desired use case. |
| reqSubscriberOptin | All MNOs | boolean |
If true, the MNO requires the subscriber to opt-into the campaign before the message can be sent. The opt-in mechanism can be a mobile or web opt-in. |
| reqSubscriberOptout | All MNOs | boolean |
If true, the MNO requires a campaign to support an opt-out mechanism through stop keywords such as STOP or QUIT. Upon receiving a STOP message from a subscriber, the campaign must immediately stop sending messages to the subscriber. |
| reqSubscriberHelp | All MNOs | boolean |
If true, the MNO requires the campaign to support an assistance mechanism through help key words such as HELP or INFO. |
| noEmbeddedLink | All MNOs | boolean |
If true, the MNO does not allow a call-to-action link/URL to be embedded in messages sent to the subscriber. |
| noEmbeddedPhone | All MNOs | boolean |
If true, the MNO forbids call-to-action phone numbers to be embedded in messages sent to the subscriber. |
| msgClass | AT&T | string |
Message class assigned to the campaign by AT&T. Please refer to the AT&T 10DLC guide for a complete list of available message classes and definitions. |
| tpm | AT&T | integer |
SMS message TPM (throughput per minute) assigned to the brand for the desired use case. |
| mmsTpm | AT&T | integer |
MMS message TPM (throughput per minute) assigned to the brand for the desired use case. |
| tpmScope | AT&T | string |
TPM restriction scope. Possible values include: CAMPAIGN or PHONE_NUMBER. If the scope is PHONE_NUMBER, then the TPM rate-limiting is imposed separately for each phone number provisioned to the campaign. A CAMPAIGN level scope indicates rate-limiting imposed for the entire campaign. |
| brandTier | T-Mobile | string |
Daily message volume assigned to the campaign based on brand tier or brand qualification. The daily volume restriction applies to brands across all campaigns and CSPs. Please contact your message service provider for updated T-Mobile terms. Possible values: LOW, LOWER_MID, UPPER_MID, TOP |
| brandDailyCap | T-Mobile | integer |
The number of messages allowed per day on the T-Mobile network. If the brandTier attribute is UNCAPPED, then this will be NULL. |