Listrak Files API
The Files API from Listrak — 2 operation(s) for files.
Operations 3
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 Files API from Listrak — 2 operation(s) for files.
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-files-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
title: Listrak Media REST Files API
description: '# Introduction
The Listrak Media REST API lets you manage a company''s media library: the directories and
image files used across Listrak products, plus the fonts available for use alongside them.'
version: 1.0.0
x-logo:
url: images/logo.png
servers:
- url: https://api.listrak.com/media
security:
- Bearer: []
tags:
- name: Files
paths:
/v1/directories/{directoryId}/files:
post:
tags:
- Files
summary: Create a file
operationId: createFile
parameters:
- name: directoryId
in: path
required: true
schema:
pattern: ^-?(?:0|[1-9]\d*)$
type: integer
format: int32
requestBody:
content:
multipart/form-data:
schema:
required:
- contents
- name
type: object
allOf:
- type: object
properties:
contents:
$ref: '#/components/schemas/IFormFile'
- type: object
properties:
name:
type: string
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/FileResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 400
error: ERROR_INVALID_PARAMETER
message: The request is invalid.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 403
error: ERROR_FORBIDDEN
message: You do not have permission to access this resource.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 404
error: ERROR_NOT_FOUND
message: The requested resource was not found.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 409
error: ERROR_CONFLICT
message: The resource conflicts with an existing resource.
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 500
error: ERROR_INTERNAL
message: An unexpected error occurred.
x-codeSamples:
- lang: C#
source: 'var client = new HttpClient();
client.BaseAddress = new Uri("https://api.listrak.com/media/");
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var response = await client.PostAsJsonAsync("v1/directories/{directoryId}/files", );'
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n 'base_uri' => 'https://api.listrak.com/media/'\n]);\n\n$res = $client->request('POST', 'v1/directories/{directoryId}/files', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);"
/v1/directories/{directoryId}/files/{fileId}:
put:
tags:
- Files
summary: Update the file name or move it to a different directory
operationId: updateFile
parameters:
- name: directoryId
in: path
required: true
schema:
pattern: ^-?(?:0|[1-9]\d*)$
type: integer
format: int32
- name: fileId
in: path
required: true
schema:
pattern: ^-?(?:0|[1-9]\d*)$
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFileRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/FileResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 400
error: ERROR_INVALID_PARAMETER
message: The request is invalid.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 403
error: ERROR_FORBIDDEN
message: You do not have permission to access this resource.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 404
error: ERROR_NOT_FOUND
message: The requested resource was not found.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 409
error: ERROR_CONFLICT
message: The resource conflicts with an existing resource.
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 500
error: ERROR_INTERNAL
message: An unexpected error occurred.
x-codeSamples:
- lang: C#
source: "var client = new HttpClient();\n\nclient.BaseAddress = new Uri(\"https://api.listrak.com/media/\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer \" + token);\n\nvar response = await client.PutAsJsonAsync(\"v1/directories/{directoryId}/files/{fileId}\", new\n {\n Name = null,\n NewDirectoryId = null\n });"
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n 'base_uri' => 'https://api.listrak.com/media/'\n]);\n\n$res = $client->request('PUT', 'v1/directories/{directoryId}/files/{fileId}', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n 'json' => $jsonBody\n]);"
delete:
tags:
- Files
summary: Delete the file
operationId: deleteFile
parameters:
- name: directoryId
in: path
required: true
schema:
pattern: ^-?(?:0|[1-9]\d*)$
type: integer
format: int32
- name: fileId
in: path
required: true
schema:
pattern: ^-?(?:0|[1-9]\d*)$
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 401
error: ERROR_UNAUTHORIZED
message: Authorization was denied for this request.
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 403
error: ERROR_FORBIDDEN
message: You do not have permission to access this resource.
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 404
error: ERROR_NOT_FOUND
message: The requested resource was not found.
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
status: 500
error: ERROR_INTERNAL
message: An unexpected error occurred.
x-codeSamples:
- lang: C#
source: 'var client = new HttpClient();
client.BaseAddress = new Uri("https://api.listrak.com/media/");
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var response = await client.DeleteAsync("v1/directories/{directoryId}/files/{fileId}");'
- lang: PHP
source: "$client = new \\GuzzleHttp\\Client([\n 'base_uri' => 'https://api.listrak.com/media/'\n]);\n\n$res = $client->request('DELETE', 'v1/directories/{directoryId}/files/{fileId}', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);"
components:
schemas:
FileResponse:
required:
- status
- data
type: object
properties:
status:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
data:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/File'
IFormFile:
type: string
format: binary
SuccessResponse:
required:
- status
- data
type: object
properties:
status:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
data: {}
ErrorResponse:
required:
- status
- error
- message
type: object
properties:
status:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
error:
type: string
message:
type: string
File:
required:
- id
- directoryId
- name
- publicUrl
- size
- uploadDate
type: object
properties:
id:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
directoryId:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int32
name:
type: string
publicUrl:
type: string
size:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- integer
- string
format: int64
uploadDate:
type: string
format: date-time
example:
id: 501
directoryId: 42
name: banner.png
publicUrl: https://mediacdn.listrak.com/12345/banner.png
size: 204800
uploadDate: '2026-06-01T14:32:00Z'
UpdateFileRequest:
required:
- name
- newDirectoryId
type: object
properties:
name:
type:
- 'null'
- string
newDirectoryId:
pattern: ^-?(?:0|[1-9]\d*)$
type:
- 'null'
- integer
- string
format: int32
example:
name: new-name.png
newDirectoryId: 7
securitySchemes:
Bearer:
type: http
description: Pass the Listrak auth token in the Authorization header.
scheme: bearer
bearerFormat: Listrak encrypted token