openapi: 3.2.0 info: title: Listrak Files API version: 1.0.0 x-logo: url: images/logo.png description: 'Operations tagged Files across 2 of this provider''s published API definitions: listrak-media-files-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: 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]);" servers: - url: https://api.listrak.com/media /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]);" servers: - url: https://api.listrak.com/media 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' 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' 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 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 IFormFile: type: string format: binary 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-files-api-openapi.yml - listrak-media-openapi.json x-amazon-apigateway-security-policy: TLS_1_0 x-tagGroups: - name: API Reference tags: - Events - EventConfigurations