openapi: 3.0.1 info: title: App Push Mobile Client API description: '# Introduction Welcome to the Listrak Mobile Client REST API! Our API allows developers to integrate their mobile application with Listrak. We aim to provide comprehensive documentation coverage of our API''s capabilities. Each resource and method is described in detail with implementation notes, descriptions of parameters, headers, return values, and code samples to aid in development. # Versioning The API version will be incremented if breaking changes are introduced. Breaking changes may include: - Addition of required headers, parameters, or model fields to a current route - Alterations that would result in currently valid requests failing, or performing unexpectedly Changes that are not considered breaking may include: - Addition of new model fields - Addition of new routes - Addition of new response headers - Any alteration to a route that is marked as In Development # Status Codes | Status Code | Status | Description | | --- | --- | --- | | 201 | Created | A new resource has been created. | | 202 | Accepted | The request has been accepted for further processing. | | 204 | No Content | The request was processed successfully but there is no content to send in the response. | | 400 | Bad Request | Your request is malformed or invalid. | | 403 | Forbidden | The request is not authorized. | | 404 | Not Found | The resource does not exist. | | 405 | Method Not Allowed | The route does not support the requested method. | | 409 | Conflict | The request cannot be processed because doing so would result in conflicting resources. | | 429 | Too Many Requests | The request rate limit has been exceeded. | | 415 | Unsupported Media Type | Please use a `Content-Type` of `application/json`. | | 500 | Internal Server Error | An unexpected error occurred. Our development team has been notified. | # Parameters ## Route Parameters Resource identifiers are specified in the route. For example, in the route `/Resource/{resourceId}`, `resourceId` is a route parameter. In this example, if you wish to interact with Resource #123, its route would be `/Resource/123`. ## Request Body Please use a `Content-Type` of `application/json` and provide a JSON object in your request body. # Authentication Authentication is accomplished using a Listrak provided API key, your API key should be included in the ''x-api-key'' header in every request.' termsOfService: http://integrations.listrak.com/api/customers/v1/terms license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: v1 x-logo: url: https://api.listrak.com/Email/Resources/Images/Logo.png altText: Listrak href: https://www.listrak.com backgroundColor: '#fafafa' servers: - url: https://api.listrak.com/mobileclient paths: /device: post: tags: - app-push-mobile-client-device summary: Registers a device to receive push notifications operationId: createAppPushDevice requestBody: description: App push device registration request content: application/json: schema: $ref: '#/components/schemas/Device' required: true responses: '404': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '201': description: Returns one Device content: application/json: schema: $ref: '#/components/schemas/Device' '429': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '400': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '500': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '403': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' /device/{deviceUid}: get: tags: - app-push-mobile-client-device summary: Gets device information operationId: getAppPushDevice parameters: - name: deviceUid in: path required: true schema: type: string responses: '404': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '200': description: Returns one Device content: application/json: schema: $ref: '#/components/schemas/Device' '429': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '400': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '500': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '403': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' put: tags: - app-push-mobile-client-device summary: Updates a device operationId: updateAppPushDevice parameters: - name: deviceUid in: path required: true schema: type: string requestBody: description: App push device request content: application/json: schema: $ref: '#/components/schemas/Device' required: true responses: '404': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '200': description: Returns one Device content: application/json: schema: $ref: '#/components/schemas/Device' '429': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '400': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '500': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '403': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' patch: tags: - app-push-mobile-client-device summary: Patches a device operationId: patchAppPushDevice parameters: - name: deviceUid in: path required: true schema: type: string requestBody: description: App push device patch request content: application/json: schema: $ref: '#/components/schemas/DevicePatch' required: true responses: '404': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '200': description: Returns one Device content: application/json: schema: $ref: '#/components/schemas/Device' '429': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '400': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '500': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '403': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' /device/{deviceUid}/engagement: post: tags: - app-push-mobile-client-engagements summary: Creates a mobile device engagement event operationId: createMobileDeviceEngagementEvent parameters: - name: deviceUid in: path required: true schema: type: string requestBody: description: Triggered mobile device engagement event content: application/json: schema: $ref: '#/components/schemas/EngagementEvent' required: true responses: '404': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '429': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '202': description: 202 response headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Accepted' '400': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '500': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' '403': description: An error returned by the App Push APIs headers: X-Frame-Options: schema: type: string Strict-Transport-Security: schema: type: string X-Content-Type-Options: schema: type: string Content-Security-Policy: schema: type: string content: application/json: schema: $ref: '#/components/schemas/MobileClientError' components: schemas: MobileClientError: type: object properties: errorMessage: type: string DevicePlatformType: enum: - Firebase - APNs type: string description: The push notification platform used by the device DevicePatch: required: - deviceUid type: object properties: deviceUid: type: string format: uuid deviceToken: type: string description: Identifying token for a mobile device identifiers: $ref: '#/components/schemas/Identifiers' subscribed: type: boolean description: Identifying whether a mobile device is subscribed or unsubscribed deviceOS: $ref: '#/components/schemas/DeviceOS' deviceOSVersion: type: string description: Identifies the version of the mobile device's OS deviceType: type: string description: Identifies the physical device model mobileAppVersion: type: string description: Identifies the version of the Mobile App description: A Patch for a Mobile App Push Device Device: required: - devicePlatformType - deviceToken - subscribed type: object properties: deviceUid: type: string format: uuid deviceToken: type: string description: Identifying token for a mobile device devicePlatformType: $ref: '#/components/schemas/DevicePlatformType' identifiers: $ref: '#/components/schemas/Identifiers' subscribed: type: boolean description: Identifies whether a mobile device is subscribed or unsubscribed deviceOS: $ref: '#/components/schemas/DeviceOS' deviceOSVersion: type: string description: Identifies the version of the mobile device's OS deviceType: type: string description: Identifies the physical device model mobileAppVersion: type: string description: Identifies the version of the Mobile App description: A Mobile App Push Device EngagementEvent: required: - sendUid - type type: object properties: sendUid: type: string format: uuid type: $ref: '#/components/schemas/EngagementEventType' description: An engagement event that has happened on a mobile device EngagementEventType: enum: - Tapped - Dismissed type: string description: The type of engagement that occurred Identifiers: type: object properties: email: type: string description: Identifying email for a device phone: type: string description: Identifying phone number for a device description: Identifiers that can associate a device with a contact DeviceOS: enum: - Android - iOS - Other type: string description: The operating system used by the device Accepted: type: object properties: statusCode: type: string securitySchemes: api_key: type: apiKey name: x-api-key in: header tags: - name: app-push-mobile-client-device description: Endpoints to manage app push devices. - name: app-push-mobile-client-engagements description: Endpoints to manage app push mobile client engagements. x-amazon-apigateway-security-policy: TLS_1_0 x-amazon-apigateway-policy: Version: '2012-10-17T00:00:00.0000000+00:00' Statement: - Effect: Allow Principal: '*' Action: execute-api:Invoke Resource: arn:aws:execute-api:us-east-1:925048818831:evlm7h2qhg/*