openapi: 3.1.0
info:
  title: Users
  version: 2.0.0
  description: |-
    View the user information that has been saved to your Sendcloud account.

    You can manage your account details or make changes to your address information directly from your Sendcloud account: https://app.sendcloud.com/v2/settings/addresses/sender
  contact:
    name: Sendcloud API Support
    url: https://www.sendcloud.dev
    email: contact@sendcloud.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://panel.sendcloud.sc/api/v2
    description: Production
tags:
  - name: Users
paths:
  /user:
    get:
      summary: Retrieve your user data
      x-mint:
        href: /api/v2/users/retrieve-your-user-data
        content: |-
          <Info>
            OAuth2 scopes required: `read:user`. See [Scopes for OAuth apps](/api/v3/scopes).
          </Info>

          <Warning>
            **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).
          </Warning>
      description: Request the data connected with your user account. The response includes your invoice address details, your Sendcloud username, and a list of all your invoices with the associated invoice `id`s.
      tags:
        - Users
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      data:
                        type: array
                        description: Returns an empty array in order to keep compatibility with the PHP API.
                        minItems: 0
                        items:
                          type: object
                      username:
                        type: string
                        example: user-417140
                      company_name:
                        type: string
                        example: Sendcloud
                      telephone:
                        type: string
                        example: '+33123456789'
                      address:
                        type: string
                        example: Simpel&Snel 123
                      postal_code:
                        type: string
                        example: 1234AB
                      city:
                        type: string
                        example: SendCloud City
                      email:
                        type: string
                        example: john.doe@sendcloud.com
                      company_logo:
                        type:
                          - object
                          - 'null'
                      registered:
                        type: string
                        example: '2022-04-06T11:29:37Z'
                        format: date-time
                      modules:
                        type: array
                        description: |-
                          Returns only the SendCloud Client module in order to keep compatibility
                                  with the PHP API
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 5
                              format: int64
                              minimum: 1
                              description: The id of the user
                            name:
                              type: string
                              example: SendCloud Client
                            settings:
                              type:
                                - string
                                - 'null'
                            activated:
                              type: boolean
                              default: true
                              description: If the user account was activated.
                            short_name:
                              type: string
                              example: sendcloud_client
                          required:
                            - id
                            - name
                            - activated
                            - short_name
                      invoices:
                        type: array
                        description: List of invoices associated with the user
                        items:
                          type: object
                    required:
                      - username
                      - company_name
                      - telephone
                      - address
                      - postal_code
                      - city
                      - email
                      - invoices
              examples:
                UserDetails:
                  summary: Retrieve user information
                  value:
                    user:
                      data: []
                      username: user-417170
                      company_name: Sendcloud
                      telephone: '+33123456789'
                      address: Simpel&Snel 123
                      postal_code: 1234AB
                      city: SendCloud City
                      email: example@sendcloud.com
                      company_logo: null
                      registered: '2022-04-06 11:29:37'
                      modules:
                        - id: 5
                          name: SendCloud Client
                          settings: null
                          activated: true
                          short_name: sendcloud_client
                      invoices: []
          headers: {}
      operationId: sc-public-v2-scp-get-current_user_data
      security:
        - HTTPBasicAuth: []
        - OAuth2ClientCreds:
            - read:user
components:
  securitySchemes:
    HTTPBasicAuth:
      type: http
      description: Basic Authentication using API key and secrets is currently the main authentication mechanism.
      scheme: basic
    OAuth2ClientCreds:
      type: oauth2
      description: OAuth2 is a standardized protocol for authorization that allows users to share their private resources stored on one site with another site without having to provide their credentials. OAuth2 Client Credentials Grant workflow. This workflow is typically used for server-to-server interactions that require authorization to access specific resources.
      flows:
        clientCredentials:
          tokenUrl: https://account.sendcloud.com/oauth2/token/
          scopes:
            read:analytics: View your shipping analytics
            read:audit-log: View your account's audit log
            read:brand: View your brands
            write:brand: Manage your brands
            write:carrier: Configure carriers and contracts
            read:checkout: View your dynamic checkout configurations and templates
            read:event-subscription: View your event subscriptions
            write:event-subscription: Create and manage your event subscriptions
            read:integration: View your integrations
            write:integration: Connect and manage integrations
            read:invoice: View your invoices
            read:notification: View your notifications
            write:notification: Manage your notifications
            read:operational-settings: View your warehouses, shipping lanes, and other operational settings
            write:operational-settings: Manage your warehouses, shipping lanes, and other operational settings
            read:order: View your orders
            write:order: Import and process your orders
            read:organization: View organization settings
            write:organization: Change organization settings
            read:parcel: View your shipments and their tracking status
            write:parcel: Create, announce, and cancel shipments
            read:pickup: View carrier pickups and the options available for scheduling them
            write:pickup: Schedule and manage carrier pickups
            read:price: View shipping prices
            write:product: Manage your product catalog
            read:return: View your returns
            write:return: Create and manage returns
            read:return-settings: View your return settings
            write:return-settings: Configure your return settings
            read:service-point: View carrier service points
            read:shipping-method: View shipping methods, products and prices
            read:shipping-rule: View your shipping rules
            write:shipping-rule: Create and manage shipping rules
            read:support-ticket: View your support tickets
            write:support-ticket: Manage your support tickets
            read:tracking-message: View your tracking notifications
            write:tracking-message: Manage your tracking notifications
            read:tracking-page: View your tracking page
            write:tracking-page: Customize your tracking page
            read:user: Read your basic account information
