Flipturn Maintenance Windows API

Scheduled maintenance windows for chargers.

OpenAPI Specification

flipturn-maintenance-windows-api-openapi.yml Raw ↑
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.'