| All Verbs | /chathistory | 
|---|
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Channels | query | string[] | No | |
| AfterId | query | long? | No | |
| Take | query | int? | No | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Results | form | List<ChatMessage> | No | |
| ResponseStatus | form | ResponseStatus | No | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Id | form | long | No | |
| Channel | form | string | No | |
| FromUserId | form | string | No | |
| FromName | form | string | No | |
| DisplayName | form | string | No | |
| Message | form | string | No | |
| UserAuthId | form | string | No | |
| Private | 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 /chathistory HTTP/1.1 
Host: test.servicestack.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
	channels: 
	[
		String
	],
	afterId: 0,
	take: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
	results: 
	[
		{
			id: 0,
			channel: String,
			fromUserId: String,
			fromName: String,
			displayName: String,
			message: String,
			userAuthId: String,
			private: False
		}
	],
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}