openapi: 3.2.0 info: title: Listrak Directories API version: 1.0.0 x-logo: url: images/logo.png description: 'Operations tagged Directories across 2 of this provider''s published API definitions: listrak-media-directories-api-openapi.yml, listrak-media-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.listrak.com/media security: - Bearer: [] tags: - name: Directories paths: /v1/directories: get: tags: - Directories summary: List the top level directories operationId: listTopLevelDirectories responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DirectorySummaryResponse' '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. '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.GetAsync("v1/directories");' - lang: PHP source: "$client = new \\GuzzleHttp\\Client([\n 'base_uri' => 'https://api.listrak.com/media/'\n]);\n\n$res = $client->request('GET', 'v1/directories', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);" servers: - url: https://api.listrak.com/media /v1/directories/{directoryId}: get: tags: - Directories summary: List subdirectories and files operationId: listDirectoryContents parameters: - name: directoryId in: path required: true schema: pattern: ^-?(?:0|[1-9]\d*)$ type: integer format: int32 - name: subdirectoriesPageNumber in: query schema: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 - name: subdirectoriesPageSize in: query schema: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 - name: filesPageNumber in: query schema: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 - name: filesPageSize in: query schema: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DirectoryContentsResponse' '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. '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.GetAsync("v1/directories/{directoryId}");' - lang: PHP source: "$client = new \\GuzzleHttp\\Client([\n 'base_uri' => 'https://api.listrak.com/media/'\n]);\n\n$res = $client->request('GET', 'v1/directories/{directoryId}', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);" post: tags: - Directories summary: Create a directory operationId: createDirectory parameters: - name: directoryId in: path required: true schema: pattern: ^-?(?:0|[1-9]\d*)$ type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateDirectoryRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/DirectoryResponse' '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.PostAsJsonAsync(\"v1/directories/{directoryId}\", new\n {\n Name = null\n });" - 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}', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n 'json' => $jsonBody\n]);" put: tags: - Directories summary: Update the directory name or move it to a different directory operationId: updateDirectory parameters: - name: directoryId in: path required: true schema: pattern: ^-?(?:0|[1-9]\d*)$ type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateDirectoryRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DirectoryResponse' '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}\", new\n {\n Name = null,\n NewParentId = 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}', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n 'json' => $jsonBody\n]);" delete: tags: - Directories summary: Delete the directory operationId: deleteDirectory parameters: - name: directoryId 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}");' - 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}', [\n 'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);" servers: - url: https://api.listrak.com/media components: schemas: Page: required: - pageNumber - pageSize - totalCount type: object properties: pageNumber: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 pageSize: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 totalCount: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 example: pageNumber: 1 pageSize: 100 totalCount: 12 CreateDirectoryRequest: required: - name type: object properties: name: type: string example: name: Product Photos DirectoryResponse: required: - status - data type: object properties: status: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 data: oneOf: - type: 'null' - $ref: '#/components/schemas/Directory' UpdateDirectoryRequest: required: - name - newParentId type: object properties: name: type: - 'null' - string newParentId: pattern: ^-?(?:0|[1-9]\d*)$ type: - 'null' - integer - string format: int32 example: name: Updated Name newParentId: 7 SuccessResponse: required: - status - data type: object properties: status: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 data: {} 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' DirectorySummary: required: - id - name type: object properties: id: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 name: type: string example: id: 1 name: My Company DirectoryContents: required: - subdirectories - files - subdirectoriesPage - filesPage type: object properties: subdirectories: type: array items: $ref: '#/components/schemas/Directory' files: type: array items: $ref: '#/components/schemas/File' subdirectoriesPage: $ref: '#/components/schemas/Page' filesPage: $ref: '#/components/schemas/Page' 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 DirectorySummaryResponse: required: - status - data type: object properties: status: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 data: type: - 'null' - array items: $ref: '#/components/schemas/DirectorySummary' Directory: required: - id - parentId - name type: object properties: id: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 parentId: pattern: ^-?(?:0|[1-9]\d*)$ type: - 'null' - integer - string format: int32 name: type: string example: id: 42 parentId: 7 name: Product Photos DirectoryContentsResponse: required: - status - data type: object properties: status: pattern: ^-?(?:0|[1-9]\d*)$ type: - integer - string format: int32 data: oneOf: - type: 'null' - $ref: '#/components/schemas/DirectoryContents' securitySchemes: Bearer: type: http description: Pass the Listrak auth token in the Authorization header. scheme: bearer bearerFormat: Listrak encrypted token x-refined-from: - listrak-media-directories-api-openapi.yml - listrak-media-openapi.json x-amazon-apigateway-security-policy: TLS_1_0 x-tagGroups: - name: API Reference tags: - Events - EventConfigurations