Listrak Content API
The Content API from Listrak — 2 operation(s) for content.
Operations 4
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
The Content API from Listrak — 2 operation(s) for content.
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/listrak:listrak-content-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: v1
title: Listrak Email REST Content API
description: '# Introduction
Welcome to the Listrak Email REST API!'
x-logo:
url: /Email/Resources/Images/Logo.png
servers:
- url: https://api.listrak.com/email
tags:
- name: Content
description: The Content resource allows you to create and manage content blocks in the content library for a list.
paths:
/v1/Content:
get:
tags:
- Content
summary: Get all Content
description: Returns the collection of content blocks associated with the account.
operationId: Content_GetContentCollection
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Collection_Content'
example:
status: 200
data:
- contentId: 0
contentFolderId: 0
contentName: null
textContent: null
htmlContent: null
contentType: 0
contentReadOnly: false
lastModifiedDate: '0001-01-01T00:00:00'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 400
error: ERROR_INVALID_PARAMETER
message: An invalid value was supplied for {Parameter}.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
security:
- OAuth 2:
- Message
x-code-samples:
- lang: C#
source: 'var client = new HttpClient();
client.BaseAddress = new Uri("https://api.listrak.com/email/");
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var response = await client.GetAsync("v1/Content");
'
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('GET', 'v1/Content', [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
post:
tags:
- Content
summary: Create Content
description: Creates a new content block in the content library.
operationId: Content_PostCreateContent
responses:
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 400
error: ERROR_INVALID_PARAMETER
message: An invalid value was supplied for {Parameter}.
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceCreated'
example:
status: 201
resourceId: '{ResourceId}'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
security:
- OAuth 2:
- Message
x-code-samples:
- lang: C#
source: "var client = new HttpClient();\n\nclient.BaseAddress = new Uri(\"https://api.listrak.com/email/\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer \" + token);\n\nvar response = await client.PostAsJsonAsync(\"v1/Content\", new\n{\n ContentFolderId = null,\n ContentName = null,\n TextContent = null,\n HtmlContent = null,\n ContentType = 0\n});\n"
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('POST', 'v1/Content', [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n\t'json' => $jsonBody\n]);\n"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ContentCreate'
description: The content to create.
required: true
/v1/Content/{contentId}:
get:
tags:
- Content
summary: Get a Content
description: Returns the specified content block.
operationId: Content_GetContentResource
parameters:
- name: contentId
in: path
description: Identifier used to locate the content.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_Content'
example:
status: 200
data:
contentId: 0
contentFolderId: 0
contentName: null
textContent: null
htmlContent: null
contentType: 0
contentReadOnly: false
lastModifiedDate: '0001-01-01T00:00:00'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 400
error: ERROR_INVALID_PARAMETER
message: An invalid value was supplied for {Parameter}.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 404
error: ERROR_UNABLE_TO_LOCATE_RESOURCE
message: Unable to locate a resource associated with the contentId supplied.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
security:
- OAuth 2:
- Message
x-code-samples:
- lang: C#
source: 'var client = new HttpClient();
client.BaseAddress = new Uri("https://api.listrak.com/email/");
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var response = await client.GetAsync("v1/Content/{contentId}");
'
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('GET', 'v1/Content/{contentId}', [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
put:
tags:
- Content
summary: Update a Content
description: Updates an existing content block. Content used in a live dynamic content block cannot be modified.
operationId: Content_PutUpdateContent
parameters:
- name: contentId
in: path
description: Identifier used to locate the content.
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_Content'
example:
status: 200
data:
contentId: 0
contentFolderId: 0
contentName: null
textContent: null
htmlContent: null
contentType: 0
contentReadOnly: false
lastModifiedDate: '0001-01-01T00:00:00'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 400
error: ERROR_INVALID_PARAMETER
message: An invalid value was supplied for {Parameter}.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 404
error: ERROR_UNABLE_TO_LOCATE_RESOURCE
message: Unable to locate a resource associated with the contentId supplied.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
security:
- OAuth 2:
- Message
x-code-samples:
- lang: C#
source: "var client = new HttpClient();\n\nclient.BaseAddress = new Uri(\"https://api.listrak.com/email/\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer \" + token);\n\nvar response = await client.PutAsJsonAsync(\"v1/Content/{contentId}\", new\n{\n ContentFolderId = null,\n ContentName = null,\n TextContent = null,\n HtmlContent = null\n});\n"
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('PUT', 'v1/Content/{contentId}', [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n\t'json' => $jsonBody\n]);\n"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ContentUpdate'
description: The content fields to update.
required: true
components:
schemas:
Collection_Content:
type: object
properties:
status:
format: int32
description: HTTP status code.
type: integer
data:
description: Collection of return data from the given call.
type: array
items:
$ref: '#/components/schemas/Content'
Content:
description: A content library resource.
type: object
properties:
contentId:
format: int32
description: Identifier used to locate the content.
type: integer
contentFolderId:
format: int32
description: Identifier of the content folder.
type: integer
contentName:
description: Name given to the content block.
type: string
textContent:
description: Plain text content of the content block.
type: string
htmlContent:
description: HTML content of the content block.
type: string
contentType:
description: Type of the content block.
enum:
- DynamicContent
- SavedContent
type: string
contentReadOnly:
description: Indicates whether the content is read-only due to use in a live dynamic content block.
type: boolean
lastModifiedDate:
format: date-time
description: Date the content was last modified.
type: string
ContentUpdate:
description: Request model for updating content.
type: object
properties:
contentFolderId:
format: int32
description: Identifier of the content folder to place the content in.
type: integer
contentName:
description: Name given to the content block.
type: string
textContent:
description: Plain text content of the content block.
type: string
htmlContent:
description: HTML content of the content block.
type: string
ResourceCreated:
type: object
properties:
status:
format: int32
description: HTTP status code.
type: integer
resourceId:
description: An identifier used to locate a resource.
type: string
ContentCreate:
description: Request model for creating content.
required:
- contentName
type: object
properties:
contentFolderId:
format: int32
description: Identifier of the content folder to place the content in.
type: integer
contentName:
description: Name given to the content block.
type: string
textContent:
description: Plain text content of the content block.
type: string
htmlContent:
description: HTML content of the content block.
type: string
contentType:
description: Type of the content block.
enum:
- DynamicContent
- SavedContent
type: string
Error:
type: object
properties:
status:
format: int32
description: HTTP status code.
type: integer
error:
description: Error code indicating what error has occured.
type: string
message:
description: Message describing the status and the error that occurred.
type: string
Resource_Content:
type: object
properties:
status:
format: int32
description: HTTP status code.
type: integer
data:
$ref: '#/components/schemas/Content'
description: Return data.
x-tagGroups:
- name: API Reference
tags:
- Campaign
- Contact
- ContactSegmentationField
- Content
- ContentFolder
- Conversation
- ConversationMessage
- ConversationMessageActivity
- ConversationMessageLink
- ConversationMessageLinkClicker
- ConversationMessageSummary
- ConversationSummary
- Event
- EventGroup
- Folder
- IpPool
- List
- ListImport
- ListImportContact
- ListImportStatus
- ListImportSummary
- Message
- MessageActivity
- MessageLink
- MessageLinkClicker
- MessageStatus
- MessageSummary
- SavedAudience
- SavedMessage
- SegmentationField
- SegmentationFieldGroup
- SplitTest
- TransactionalMessage
- TransactionalMessageActivity
- TransactionalMessageResend
x-provenance:
method: harvested
publisher: Listrak
source: https://api.listrak.com/email/swagger/docs/v1?revision=639267197004225324
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)