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.