openapi: 3.0.1 info: title: Terminal Shop Address Profile API description: Public REST API for Terminal, a developer-focused coffee company. The API powers product browsing, carts, orders, subscriptions, addresses, cards, profiles, personal access tokens, and OAuth apps - the same surface behind the `ssh terminal.shop` storefront and the official SDKs. All monetary amounts are integers in US cents. Authentication is a Bearer personal access token (`trm_live_*` in production, `trm_test_*` in the dev sandbox) or an OAuth 2.0 access token. termsOfService: https://www.terminal.shop/terms contact: name: Terminal Support url: https://www.terminal.shop version: '1.0' servers: - url: https://api.terminal.shop description: Production - url: https://api.dev.terminal.shop description: Dev sandbox (no real charges) security: - bearerAuth: [] tags: - name: Profile paths: /profile: get: operationId: getProfile tags: - Profile summary: Get profile description: Get the current user's profile. responses: '200': description: OK content: application/json: schema: type: object required: - data properties: data: $ref: '#/components/schemas/Profile' put: operationId: updateProfile tags: - Profile summary: Update profile description: Update the current user's name and email. requestBody: required: true content: application/json: schema: type: object required: - name - email properties: name: type: string email: type: string format: email responses: '200': description: OK content: application/json: schema: type: object required: - data properties: data: $ref: '#/components/schemas/Profile' components: schemas: Profile: type: object required: - user properties: user: type: object required: - id - email - fingerprint - name - stripeCustomerID properties: id: type: string email: type: string nullable: true fingerprint: type: string nullable: true name: type: string nullable: true stripeCustomerID: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'Personal access token (`trm_live_*` in production, `trm_test_*` in the dev sandbox) or OAuth 2.0 access token, passed as `Authorization: Bearer `.'