| Requires any of the roles: | admin, oauthadmin |
| GET | /Ams/{ClientID}/MarkupMacroComponents | Return the MarkupMacroComponents for that client - with cache. | |
|---|---|---|---|
| POST | /Ams/{ClientID}/MarkupMacroComponents | Add a new Macro Component. | |
| DELETE | /Ams/{ClientID}/MarkupMacroComponents/{ComponentId} | Delete a Macro Component. |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| MarkupType | body | MarkupType | No | |
| ComponentId | path | int | No | |
| ComponentData | body | MarkupComponentData | No | |
| MacroComponentName | body | string | No | |
| MacroComponentId | body | int | 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 |
|---|---|---|---|---|
| ComponentType | form | ComponentType | No | |
| ComponentName | form | string | No | |
| IsAtRootColumn | form | bool | No | |
| CanHaveChildren | form | bool | No | |
| OrderId | form | int | No | |
| ButtonData | form | ButtonData | No | |
| ImageData | form | ImageData | No | |
| DividerData | form | DividerData | No | |
| TextData | form | TextData | No | |
| ContainerData | form | ContainerData | No | |
| PlainText | form | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Properties | form | ButtonProperties | No | |
| Settings | form | ButtonSettings | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Text | form | string | No | |
| Link | form | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| ButtonColor | form | string | No | |
| TextColor | form | string | No | |
| Alignment | form | string | No | |
| ButtonWidth | form | string | No | |
| MarginTop | form | int | No | |
| MarginBottom | form | int | No | |
| MarginLeft | form | int | No | |
| MarginRight | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Properties | form | ImageProperties | No | |
| Settings | form | ImageSettings | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| URL | form | string | No | |
| HyperLink | form | string | No | |
| AltText | form | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Alignment | form | string | No | |
| MarginTop | form | int | No | |
| MarginBottom | form | int | No | |
| MarginLeft | form | int | No | |
| MarginRight | form | int | No | |
| Width | form | int | No | |
| Height | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Settings | form | DividerSettings | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| MarginTop | form | int | No | |
| MarginBottom | form | int | No | |
| MarginLeft | form | int | No | |
| MarginRight | form | int | No | |
| BorderColor | form | string | No | |
| Height | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Properties | form | TextProperties | No | |
| Settings | form | TextSettings | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Text | form | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| MarginTop | form | int | No | |
| MarginBottom | form | int | No | |
| MarginLeft | form | int | No | |
| MarginRight | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Properties | form | ContainerProperties | No | |
| Settings | form | ContainerSettings | No | |
| Columns | form | List<MarkupComponentData>> | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| BackgroundColor | form | string | No | |
| MarginTop | form | int | No | |
| MarginBottom | form | int | No | |
| MarginLeft | form | int | No | |
| MarginRight | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Components | form | List<MacroComponent> | No | |
| ContainerId | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| MacroComponentId | form | int | No | |
| IsShared | form | bool | No | |
| Name | form | string | No | |
| ComponentData | form | MarkupComponentData | 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}/MarkupMacroComponents HTTP/1.1
Host: ws.yourmembership.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
MarkupType: None,
ComponentId: 0,
ComponentData:
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
}
]
]
},
PlainText: String
}
]
]
},
PlainText: String
}
]
]
},
PlainText: String
},
MacroComponentName: String,
MacroComponentId: 0,
UsingRedis: True,
AppInitTime: 2025-11-16T02:22:35.8203173-05:00,
ServerID: WS-5-78-126,
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:32:35.4177828-05:00,
Device: Desktop
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Components:
[
{
MacroComponentId: 0,
IsShared: False,
Name: String,
ComponentData:
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
}
]
]
},
PlainText: String
}
]
]
},
PlainText: String
}
]
]
},
PlainText: String
}
}
],
ContainerId: 0,
MarkupType: None,
ComponentId: 0,
ComponentData:
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
ComponentType: Button,
ComponentName: String,
IsAtRootColumn: False,
CanHaveChildren: False,
OrderId: 0,
ButtonData:
{
Properties:
{
Text: String,
Link: String
},
Settings:
{
ButtonColor: String,
TextColor: String,
Alignment: String,
ButtonWidth: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ImageData:
{
Properties:
{
URL: String,
HyperLink: String,
AltText: String
},
Settings:
{
Alignment: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
Width: 0,
Height: 0
}
},
DividerData:
{
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0,
BorderColor: String,
Height: 0
}
},
TextData:
{
Properties:
{
Text: String
},
Settings:
{
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
}
},
ContainerData:
{
Properties: {},
Settings:
{
BackgroundColor: String,
MarginTop: 0,
MarginBottom: 0,
MarginLeft: 0,
MarginRight: 0
},
Columns:
[
[
{
}
]
]
},
PlainText: String
}
]
]
},
PlainText: String
}
]
]
},
PlainText: String
},
MacroComponentName: String,
MacroComponentId: 0,
UsingRedis: True,
AppInitTime: 2025-11-16T02:22:35.8203173-05:00,
ServerID: WS-5-78-126,
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:32:35.4344219-05:00,
Device: Desktop
}