ParkWhiz Accounts & Vehicles API

User accounts, vehicles, and payment methods.

OpenAPI Specification

parkwhiz-accounts-vehicles-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ParkWhiz / Arrive API v4 Accounts & Vehicles API
  description: 'The ParkWhiz v4 REST API powers parking discovery, reservation, and payment for the ParkWhiz and BestParking consumer products and for approved integration partners. It exposes bookable parking availability and pricing (quotes), parking locations, bookings and parking passes, venues and events, monthly parking, accounts, vehicles, payment methods, and tickets.

    Access is partner-gated: the API is publicly documented at developer.parkwhiz.com (mirrored at developer.arrive.com), but OAuth client credentials (client_id, client_secret, redirect_uri) are issued to approved partners on request via dev@parkwhiz.com, not through self-serve signup. Scopes are assigned per partner - public (default), partner, mobile, internal, and data. A sandbox environment is available for development.

    This OpenAPI document was authored by API Evangelist from the public v4 developer documentation. Paths and methods reflect the documented API; the schema shapes are representative models, not a byte-for-byte copy of the provider spec.'
  version: '4.0'
  contact:
    name: ParkWhiz Developer Support
    url: https://developer.parkwhiz.com/
    email: dev@parkwhiz.com
  x-logo:
    url: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
servers:
- url: https://api.parkwhiz.com/v4
  description: Production
- url: https://api-sandbox.parkwhiz.com/v4
  description: Sandbox
- url: https://api.arrive.com/v4
  description: Production (Arrive-branded host)
security:
- oauth2: []
tags:
- name: Accounts & Vehicles
  description: User accounts, vehicles, and payment methods.
paths:
  /accounts:
    post:
      operationId: createAccount
      tags:
      - Accounts & Vehicles
      summary: Create an account
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Account'
      responses:
        '201':
          description: The created account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
  /accounts/me:
    get:
      operationId: getCurrentAccount
      tags:
      - Accounts & Vehicles
      summary: Retrieve the current user's account
      responses:
        '200':
          description: The current account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '401':
          $ref: '#/components/responses/Unauthorized'
    patch:
      operationId: updateCurrentAccount
      tags:
      - Accounts & Vehicles
      summary: Update the current user's account
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Account'
      responses:
        '200':
          description: The updated account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
  /accounts/me/vehicles:
    get:
      operationId: listVehicles
      tags:
      - Accounts & Vehicles
      summary: List saved vehicles
      responses:
        '200':
          description: A list of vehicles.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Vehicle'
    post:
      operationId: addVehicle
      tags:
      - Accounts & Vehicles
      summary: Add a vehicle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Vehicle'
      responses:
        '201':
          description: The created vehicle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
  /accounts/me/vehicles/{vehicle_id}:
    get:
      operationId: getVehicle
      tags:
      - Accounts & Vehicles
      summary: Retrieve a vehicle
      parameters:
      - $ref: '#/components/parameters/VehicleId'
      responses:
        '200':
          description: A vehicle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
    patch:
      operationId: updateVehicle
      tags:
      - Accounts & Vehicles
      summary: Update a vehicle
      parameters:
      - $ref: '#/components/parameters/VehicleId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Vehicle'
      responses:
        '200':
          description: The updated vehicle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
    delete:
      operationId: deleteVehicle
      tags:
      - Accounts & Vehicles
      summary: Delete a vehicle
      parameters:
      - $ref: '#/components/parameters/VehicleId'
      responses:
        '204':
          description: The vehicle was deleted.
  /accounts/me/payment_methods:
    get:
      operationId: listPaymentMethods
      tags:
      - Accounts & Vehicles
      summary: List payment methods
      responses:
        '200':
          description: A list of payment methods.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethod'
    post:
      operationId: addPaymentMethod
      tags:
      - Accounts & Vehicles
      summary: Add a payment method
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
      responses:
        '201':
          description: The created payment method.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethod'
components:
  responses:
    Unauthorized:
      description: Missing or invalid OAuth token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Vehicle:
      type: object
      properties:
        id:
          type: integer
        make:
          type: string
        model:
          type: string
        color:
          type: string
        license_plate:
          type: string
        license_plate_state:
          type: string
    PaymentMethod:
      type: object
      properties:
        id:
          type: integer
        type:
          type: string
          example: card
        brand:
          type: string
          example: visa
        last4:
          type: string
          example: '4242'
        exp_month:
          type: integer
        exp_year:
          type: integer
    Error:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
    Account:
      type: object
      properties:
        id:
          type: integer
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        phone:
          type: string
  parameters:
    VehicleId:
      name: vehicle_id
      in: path
      required: true
      schema:
        type: integer
  securitySchemes:
    oauth2:
      type: oauth2
      description: 'OAuth 2.0. Partner credentials (client_id, client_secret, redirect_uri) are issued by ParkWhiz to approved partners. Scopes: public (default), partner, mobile, internal, data.'
      flows:
        clientCredentials:
          tokenUrl: https://api.parkwhiz.com/v4/oauth/token
          scopes:
            public: Default read access to public resources.
            partner: Partner-level access to bookable inventory and bookings.
            data: Access to resources restricted by data licensing.
        authorizationCode:
          authorizationUrl: https://api.parkwhiz.com/v4/oauth/authorize
          tokenUrl: https://api.parkwhiz.com/v4/oauth/token
          scopes:
            public: Default read access to public resources.
            mobile: Mobile app user access.