openapi: 3.0.1 info: title: Courier Audiences Authentication API description: The Courier REST API. version: '' servers: - url: https://api.courier.com description: Production tags: - name: Authentication paths: /auth/issue-token: post: description: Returns a new access token. operationId: authTokens_issueToken tags: - Authentication parameters: [] responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/IssueTokenResponse' summary: Create a JWT security: - BearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: scope: type: string description: 'Available scopes: - `user_id:` - Defines which user the token will be scoped to. Multiple can be listed if needed. Ex `user_id:pigeon user_id:bluebird`. - `read:messages` - Read messages. - `read:user-tokens` - Read user push tokens. - `write:user-tokens` - Write user push tokens. - `read:brands[:]` - Read brands, optionally restricted to a specific brand_id. Examples `read:brands`, `read:brands:my_brand`. - `write:brands[:]` - Write brands, optionally restricted to a specific brand_id. Examples `write:brands`, `write:brands:my_brand`. - `inbox:read:messages` - Read inbox messages. - `inbox:write:events` - Write inbox events, such as mark message as read. - `read:preferences` - Read user preferences. - `write:preferences` - Write user preferences. Example: `user_id:user123 write:user-tokens inbox:read:messages inbox:write:events read:preferences write:preferences read:brands`' expires_in: type: string description: 'Duration for token expiration. Accepts various time formats: - "2 hours" - 2 hours from now - "1d" - 1 day - "3 days" - 3 days - "10h" - 10 hours - "2.5 hrs" - 2.5 hours - "1m" - 1 minute - "5s" - 5 seconds - "1y" - 1 year' required: - scope - expires_in examples: InboxExample: value: scope: user_id:$YOUR_USER_ID write:user-tokens inbox:read:messages inbox:write:events read:preferences write:preferences read:brands expires_in: $YOUR_NUMBER days components: schemas: IssueTokenResponse: title: IssueTokenResponse type: object properties: token: type: string required: - token securitySchemes: BearerAuth: type: http scheme: bearer