openapi: 3.1.0 info: title: Flipturn Access IDs Maintenance Windows API version: '1.0' description: 'The Flipturn API provides read and write access to the Flipturn EV charging management platform: sites, chargers and ports, charging sessions, charger health and uptime, access IDs (RFID cards and vehicles), vehicles, alerts, charger errors, raw OCPP messages, reservations, site power limits, vehicle departure times, and maintenance windows. It is a JSON REST API secured with a bearer API key, designed for integrating Flipturn charging data with ticketing platforms, data warehouses, transportation management systems, and fleet operations tooling. Flipturn also supports OCPI for roaming-partner integration (contact support to enable).' contact: name: Flipturn Support email: support@getflipturn.com url: https://api-docs.getflipturn.com/ x-apievangelist-generated: '2026-07-19' x-apievangelist-method: generated x-apievangelist-source: https://api-docs.getflipturn.com/llms.txt servers: - url: https://api.getflipturn.com/api description: Production security: - bearerAuth: [] tags: - name: Maintenance Windows description: Scheduled maintenance windows for chargers. paths: /maintenance-windows: get: operationId: listMaintenanceWindows tags: - Maintenance Windows summary: List maintenance windows description: Retrieve a paginated list of maintenance windows across chargers (up to 50 per page). Parent-org keys return windows for all child organizations. parameters: - name: afterTimestamp in: query description: 'ISO 8601: windows whose end time is after this timestamp.' schema: type: string format: date-time - name: beforeTimestamp in: query description: 'ISO 8601: windows whose start time is before this timestamp.' schema: type: string format: date-time - name: chargerIds in: query description: Filter to specific charger IDs. schema: type: array items: type: integer - name: siteIds in: query description: Filter to chargers at specific site IDs. schema: type: array items: type: integer - name: organizationIds in: query description: Filter to specific organization IDs (parent-org keys only). schema: type: array items: type: integer - $ref: '#/components/parameters/NextPageCursor' responses: '200': description: A paginated list of maintenance windows. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/MaintenanceWindow' pagination: $ref: '#/components/schemas/Pagination' '401': $ref: '#/components/responses/Unauthorized' components: schemas: CurrentChargingSession: type: object nullable: true properties: id: type: integer startTime: type: string format: date-time socStartPercent: type: number nullable: true energyDeliveredKwh: type: number ocppIdTag: type: string nullable: true ocppTransactionId: type: integer nullable: true vehicle: $ref: '#/components/schemas/VehicleRef' customer: $ref: '#/components/schemas/Customer' VehicleRef: type: object nullable: true properties: id: type: integer name: type: string nullable: true make: type: string nullable: true model: type: string nullable: true vin: type: string nullable: true SiteRef: type: object properties: id: type: integer name: type: string locationId: type: string nullable: true Organization: type: object properties: id: type: integer name: type: string MaintenanceWindow: type: object properties: id: type: integer startTimestamp: type: string format: date-time endTimestamp: type: string format: date-time comment: type: string nullable: true userEmail: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time charger: $ref: '#/components/schemas/Charger' site: $ref: '#/components/schemas/SiteRef' organization: $ref: '#/components/schemas/Organization' Port: type: object properties: id: type: integer name: type: string portNumber: type: integer maximumPowerKw: type: number nullable: true connectorType: type: string description: CCS1, J1772, or NACS. ocppStatus: type: object nullable: true properties: status: type: string timestamp: type: string format: date-time errorCode: type: string vendorErrorCode: type: string nullable: true info: type: string nullable: true currentChargingSession: $ref: '#/components/schemas/CurrentChargingSession' Error: type: object description: Flipturn error envelope. properties: error: type: string description: Human-readable error message. Charger: type: object properties: id: type: integer name: type: string manufacturer: type: string nullable: true model: type: string nullable: true serialNumber: type: string nullable: true firmwareVersion: type: string nullable: true latitude: type: number nullable: true longitude: type: number nullable: true externalId: type: string nullable: true ocppId: type: string nullable: true type: type: string description: '"DCFC" or "Level 2".' networkServiceProvider: type: string chargerType: type: string numberOfPorts: type: integer powerSharing: type: boolean connectionStatus: type: object nullable: true properties: status: type: string timestamp: type: string format: date-time ports: type: array items: $ref: '#/components/schemas/Port' Customer: type: object properties: name: type: string Pagination: type: object properties: hasNextPage: type: boolean nextPageCursor: type: string nullable: true responses: Unauthorized: description: Invalid API key or Authorization header. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: NextPageCursor: name: nextPageCursor in: query description: Opaque cursor from the previous response's pagination.nextPageCursor to fetch the next page. Keep all other parameters identical. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'API key passed as a bearer token in the Authorization header: `Authorization: Bearer {api_key}`. Keys are created in the Flipturn app (Manage > API Keys) by an Owner and can be scoped to specific sites or chargers.'