| Requires any of the roles: | admin, oauthadmin |
| GET,POST | /Ams/{ClientID}/Campaigns | Return a list of Email Campaigns and their data. | |
|---|---|---|---|
| GET | /Ams/{ClientID}/Campaigns/{CampaignId} | Return the details of a given Email Campaign. | |
| PUT | /Ams/{ClientID}/Campaigns/{CampaignId} | Update a given Email Campaign. | |
| DELETE | /Ams/{ClientID}/Campaigns/{CampaignId} | Delete a given Email Campaign. | |
| POST | /Ams/{ClientID}/Campaigns/{CampaignId}/SendTest | Send the test email. |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| CampaignId | path | int | No | |
| ListId | body | int | No | |
| CategoryId | body | int | No | |
| CampaignName | body | string | No | |
| TestRecipientEmail | body | string | No | |
| Subject | body | string | No | |
| EmailPreview | body | string | No | |
| SenderEmail | body | string | No | |
| MarkupId | body | int | No | |
| DateScheduled | body | DateTime? | No | |
| DoDeDupe | body | bool | No | |
| PageSize | body | int | No | |
| PageNumber | body | int | No | |
| CampaignStatus | body | BulkEmailStatus | No | |
| IsNewsLetters | body | bool | No | |
| NewName | body | string | No | |
| OrderBy | body | string | No | |
| OrderByDirection | body | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| UsingRedis | form | bool | No | |
| AppInitTime | form | DateTime | No | |
| ServerID | form | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| ClientID | form | int | No | |
| ResponseStatus | form | ResponseStatus | No | |
| BypassCache | form | bool | No | |
| DateCached | form | DateTime | No | |
| Device | form | Device | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| DateStartProcessing | form | DateTime? | No | |
| DateEndProcessing | form | DateTime? | No | |
| DateJobSubmitted | form | DateTime | No | |
| ListName | form | string | No | |
| ListArea | form | EmailListArea | No | |
| EmailCategoryName | form | string | No | |
| AdminName | form | string | No | |
| AdminComments | form | string | No | |
| TotalCount | form | int | No | |
| Campaigns | form | List<CampaignData> | No | |
| HasCampaignActivityExpired | form | bool | No | |
| DateCampaignActivityExpiration | form | DateTime? | No | |
| Version | form | int | No | |
| PreservedListIdAndName | form | string | No | |
| parentId | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Id | form | int | No | |
| CampaignName | form | string | No | |
| DateCreated | form | DateTime | No | |
| DateScheduled | form | DateTime? | No | |
| CampaignStatus | form | BulkEmailStatus | No | |
| Subject | form | string | No | |
| CategoryName | form | string | No | |
| CategoryId | form | int | No | |
| MarkupId | form | int | No | |
| Processed | form | int | No | |
| Version | form | int | No | |
| HasCampaignExpired | form | bool | No |
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Ams/{ClientID}/Campaigns HTTP/1.1
Host: ws.yourmembership.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
CampaignId: 0,
ListId: 0,
CategoryId: 0,
CampaignName: String,
TestRecipientEmail: String,
Subject: String,
EmailPreview: String,
SenderEmail: String,
MarkupId: 0,
DateScheduled: 0001-01-01,
DoDeDupe: False,
PageSize: 0,
PageNumber: 0,
CampaignStatus: InQueue,
IsNewsLetters: False,
NewName: String,
OrderBy: String,
OrderByDirection: String,
UsingRedis: True,
AppInitTime: 2025-11-16T02:18:35.6897348-05:00,
ServerID: WS-4-145-668,
ClientID: 0,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
BypassCache: False,
DateCached: 2025-11-16T04:42:08.2027464-05:00,
Device: Desktop
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
DateStartProcessing: 0001-01-01,
DateEndProcessing: 0001-01-01,
DateJobSubmitted: 0001-01-01,
ListName: String,
ListArea: None,
EmailCategoryName: String,
AdminName: String,
AdminComments: String,
TotalCount: 0,
Campaigns:
[
{
Id: 0,
CampaignName: String,
DateCreated: 0001-01-01,
DateScheduled: 0001-01-01,
CampaignStatus: InQueue,
Subject: String,
CategoryName: String,
CategoryId: 0,
MarkupId: 0,
Processed: 0,
Version: 0,
HasCampaignExpired: False
}
],
HasCampaignActivityExpired: False,
DateCampaignActivityExpiration: 0001-01-01,
Version: 0,
PreservedListIdAndName: String,
parentId: 0,
CampaignId: 0,
ListId: 0,
CategoryId: 0,
CampaignName: String,
TestRecipientEmail: String,
Subject: String,
EmailPreview: String,
SenderEmail: String,
MarkupId: 0,
DateScheduled: 0001-01-01,
DoDeDupe: False,
PageSize: 0,
PageNumber: 0,
CampaignStatus: InQueue,
IsNewsLetters: False,
NewName: String,
OrderBy: String,
OrderByDirection: String,
UsingRedis: True,
AppInitTime: 2025-11-16T02:18:35.6897348-05:00,
ServerID: WS-4-145-668,
ClientID: 0,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
BypassCache: False,
DateCached: 2025-11-16T04:42:08.2371298-05:00,
Device: Desktop
}