> ## Documentation Index
> Fetch the complete documentation index at: https://docs.incentives.leap.energy/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Application

> Retrieve complete application details including customer and device information. The application must belong to your organization.

## Overview

Retrieve complete application details including all customer fields and customer devices.

<Note>
  **Optional `refId` parameter**: You can optionally include a `refId` query parameter to verify the application belongs to a specific customer within your organization.
</Note>

For searching multiple applications, use the [Search Applications](/api-reference/endpoint/search-applications) endpoint. For more information, see the [Applications API Guide](/applications-guide).


## OpenAPI

````yaml GET /applications/{application_id}
openapi: 3.0.3
info:
  title: Leap Energy API
  description: >-
    The Leap Energy API provides a unified interface for managing rebate
    incentives and applications.


    ## Incentives API

    Search for and calculate incentive amounts across multiple utility programs.
    Given a customer

    address and building type, the API identifies applicable utility programs
    and calculates potential

    incentive amounts for various device and tier combinations. When your
    organization has a webhook URL

    configured (Webhook Config API), each successful lookup triggers a POST to
    your URL with the response

    and optional custom fields (`webhook_custom_fields`).


    ## Applications API

    Manage rebate applications on behalf of customers. Applications represent a
    customer's request

    for a rebate under a specific utility program, including customer
    information, device details,

    and application metadata.
  version: 2.0.0
  contact:
    name: Leap Energy
    url: https://leap.energy
servers:
  - url: https://api.incentives.leap.energy/alpha
    description: Production API
security:
  - ApiKeyAuth: []
  - BearerAuth: []
paths:
  /applications/{application_id}:
    get:
      summary: Get an application by ID
      description: >
        Retrieves a complete application including customer information and all
        associated

        customer devices. The response includes nested customer and device data.


        **Authentication:**

        Requires API key authentication via `x-api-key` header.


        **Organization Verification:**

        The application must belong to your organization. Returns 403 Forbidden
        if the application belongs to a different organization.
      operationId: getApplication
      parameters:
        - name: application_id
          in: path
          description: Unique identifier for the application
          required: true
          schema:
            type: integer
            example: 123
        - name: refId
          in: query
          description: >-
            Reference ID to verify the application belongs to a specific
            customer within your organization
          required: false
          schema:
            type: string
            example: 982734ihksjhfwoe8u
      responses:
        '200':
          description: Successfully retrieved application
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
              example:
                id: 123
                program_id: 339
                customer_id: 609
                customer_device_id:
                  - 45
                  - 46
                status: in_progress
                rebate_type: instant
                payee_type: customer
                total_requested_amount: 150
                agree_terms: true
                customer_signature: true
                customer_sig_date: '2025-01-15'
                project_name: EV Charger Installation
                created_at: '2025-01-10T15:30:00Z'
                updated_at: '2025-01-15T10:45:00Z'
                customer:
                  id: 609
                  first_name: John
                  last_name: Doe
                  email: john.doe@example.com
                  phone: 555-123-4567
                  address_line1: 123 Peachtree St
                  address_line2: Apt 4B
                  city: Atlanta
                  state: GA
                  zip_code: '30303'
                  eiaid: '14354'
                  utility_account_number: ACC-123456789
                  is_homeowner: true
                  building_age_years: 25
                  household_size: 4
                  customer_devices:
                    - id: 45
                      customer_id: 609
                      device_id: 240
                      quantity: 1
                      purchase_price: 599.99
                      installation_cost: 450
                      total_project_cost: 1049.99
                      purchase_date: '2025-01-05'
                      installation_date: '2025-01-10'
                      contractor_name: ABC Electric
                      contractor_license: EC-12345
                      permits_obtained: true
                      inspection_passed: true
                      created_at: '2025-01-10T12:00:00Z'
                      updated_at: '2025-01-15T14:30:00Z'
                      device:
                        model_name: Smart Splitter
                        manufacturer: ChargePoint
                        manufacture_year: 2024
                        device_category_name: EV Charger
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          description: Application not in your organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: forbidden
                message: Application not in your organization
                requestId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        '404':
          description: Application not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl -X GET \
              "https://api.incentives.leap.energy/alpha/applications/123" \
              -H "x-api-key: leap_live_..." \
              -H "Content-Type: application/json"
        - lang: python
          label: Python
          source: |-
            import requests

            url = "https://api.incentives.leap.energy/alpha/applications/123"
            headers = {
                "x-api-key": "leap_live_...",
                "Content-Type": "application/json"
            }

            response = requests.get(url, headers=headers)
            print(response.json())
        - lang: javascript
          label: JavaScript
          source: |-
            const response = await fetch(
              'https://api.incentives.leap.energy/alpha/applications/123',
              {
                method: 'GET',
                headers: {
                  'x-api-key': 'leap_live_...',
                  'Content-Type': 'application/json'
                }
              }
            );

            const data = await response.json();
            console.log(data);
components:
  schemas:
    Application:
      type: object
      description: Complete application with nested customer and device information
      required:
        - id
        - program_id
        - customer_id
        - status
      properties:
        id:
          type: integer
          description: Unique identifier for the application
          example: 123
        program_id:
          type: integer
          description: ID of the rebate program this application is for
          example: 339
        customer_id:
          type: integer
          description: ID of the customer who owns this application
          example: 609
        reference_id:
          type: string
          nullable: true
          description: >-
            Your unique identifier for the customer in your system. Must be
            unique per customer within your organization and matches the value
            you use with the incentives API.
          example: external-ref-123
        customer_device_id:
          type: array
          items:
            type: integer
          description: Array of customer device IDs associated with this application
          example:
            - 45
            - 46
        rebate_type:
          type: string
          nullable: true
          description: Type of rebate being requested
          example: instant
        payee_type:
          type: string
          enum:
            - customer
            - contractor
            - instant
          nullable: true
          description: Who will receive the rebate payment
          example: customer
        submission_date:
          type: string
          format: date
          nullable: true
          description: Date the application was submitted
          example: '2025-01-15'
        approval_date:
          type: string
          format: date
          nullable: true
          description: Date the application was approved
          example: '2025-01-20'
        total_requested_amount:
          type: number
          format: decimal
          nullable: true
          description: Total rebate amount being requested
          example: 150
        recaptcha_token:
          type: string
          nullable: true
          description: reCAPTCHA token for bot prevention
        agree_terms:
          type: boolean
          nullable: true
          description: Whether customer agreed to terms and conditions
          example: true
        customer_signature:
          type: boolean
          nullable: true
          description: Whether customer has signed the application
          example: true
        customer_sig_date:
          type: string
          format: date
          nullable: true
          description: Date of customer signature
          example: '2025-01-15'
        contractor_signature:
          type: boolean
          nullable: true
          description: Whether contractor has signed the application
          example: false
        contractor_sig_date:
          type: string
          format: date
          nullable: true
          description: Date of contractor signature
        project_name:
          type: string
          maxLength: 255
          nullable: true
          description: Name/description of the project
          example: EV Charger Installation
        eligibility_category:
          type: string
          enum:
            - 1A
            - 1B
            - 1C
            - '2'
          nullable: true
          description: Eligibility category for tiered programs
        income_backup_onfile:
          type: boolean
          default: false
          description: Whether income verification documentation is on file
        neat_sir_verified:
          type: boolean
          nullable: true
          description: Whether NEAT/SIR verification is complete
        proposed_measures:
          type: object
          nullable: true
          description: JSONB object containing proposed energy efficiency measures
        prepay_amount:
          type: number
          format: decimal
          nullable: true
          description: Amount to be prepaid to contractor
        authorize_contractor:
          type: boolean
          default: false
          description: Authorization to pay contractor directly
        authorize_payee:
          type: boolean
          default: false
          description: Authorization to pay specified payee
        utility_account_attestation:
          type: boolean
          nullable: true
          description: Attestation that applicant is utility account holder
        status:
          type: string
          enum:
            - not_started
            - in_progress
            - awaiting_customer
            - awaiting_partner
            - completed
            - submitted
            - approved
            - rejected
          default: not_started
          description: Current status of the application
          example: in_progress
        equipment_complete:
          type: boolean
          nullable: true
          description: Whether all equipment documentation is complete
        permit_complete:
          type: boolean
          nullable: true
          description: Whether all permit documentation is complete
        utility_complete:
          type: boolean
          nullable: true
          description: Whether all utility documentation is complete
        created_at:
          type: string
          format: date-time
          description: Timestamp when application was created
          example: '2025-01-10T15:30:00Z'
        updated_at:
          type: string
          format: date-time
          description: Timestamp when application was last updated
          example: '2025-01-15T10:45:00Z'
        customer:
          $ref: '#/components/schemas/Customer'
    Error:
      type: object
      required:
        - code
        - message
        - requestId
      properties:
        code:
          type: string
          description: Error code identifying the type of error
          example: not_found
        message:
          type: string
          description: Human-readable error message
          example: Application 123 not found
        details:
          description: Additional error details (optional)
          example: Additional context about the error
        requestId:
          type: string
          description: Unique request identifier for tracking and debugging
          example: 550e8400-e29b-41d4-a716-446655440000
    Customer:
      type: object
      description: Customer information associated with an application
      required:
        - id
        - address_line1
        - city
        - state
        - zip_code
      properties:
        id:
          type: integer
          description: Unique identifier for the customer
          example: 609
        first_name:
          type: string
          nullable: true
          description: Customer's first name
          example: John
        last_name:
          type: string
          nullable: true
          description: Customer's last name
          example: Doe
        email:
          type: string
          format: email
          nullable: true
          description: Customer's email address
          example: john.doe@example.com
        phone:
          type: string
          nullable: true
          description: Customer's phone number
          example: 555-123-4567
        address_line1:
          type: string
          description: Street address line 1
          example: 123 Peachtree St
        address_line2:
          type: string
          nullable: true
          description: Street address line 2 (apt, suite, etc.)
          example: Apt 4B
        city:
          type: string
          description: City
          example: Atlanta
        state:
          type: string
          description: State code (2 letters)
          example: GA
        zip_code:
          type: string
          description: ZIP code
          example: '30303'
        eiaid:
          type: string
          nullable: true
          description: Energy Information Administration utility ID
          example: '14354'
        utility_account_number:
          type: string
          nullable: true
          description: Customer's utility account number
          example: ACC-123456789
        building_type_id:
          type: integer
          nullable: true
          description: ID of the building type
          example: 1
        is_homeowner:
          type: boolean
          default: false
          description: Whether customer owns the property
          example: true
        is_income_qualified:
          type: boolean
          default: false
          description: Whether customer qualifies for income-based programs
          example: false
        building_age_years:
          type: integer
          nullable: true
          description: Age of the building in years
          example: 25
        within_city_limits:
          type: boolean
          nullable: true
          description: Whether property is within city limits
          example: true
        referral_source:
          type: string
          maxLength: 255
          nullable: true
          description: How customer heard about the program
          example: utility website
        fax:
          type: string
          nullable: true
          description: Customer's fax number
        conditioned_sqft:
          type: integer
          nullable: true
          description: Square footage of conditioned space
          example: 2000
        gut_rehab:
          type: boolean
          default: false
          description: Whether property is undergoing gut rehabilitation
        gas_appliance_present:
          type: boolean
          default: false
          description: Whether gas appliances are present
        home_energy_assessment_completed:
          type: boolean
          default: false
          description: Whether a home energy assessment has been completed
        household_size:
          type: integer
          nullable: true
          description: Number of people in household
          example: 4
        mailing_address_line1:
          type: string
          nullable: true
          description: Mailing address if different from property address
        mailing_city:
          type: string
          nullable: true
          description: Mailing address city
        mailing_state:
          type: string
          nullable: true
          description: Mailing address state
        mailing_zip:
          type: string
          nullable: true
          description: Mailing address ZIP code
        alt_phone:
          type: string
          nullable: true
          description: Alternate phone number
        biz_tax_status:
          type: string
          nullable: true
          description: Business tax status
        ca_entity_id:
          type: string
          nullable: true
          description: California entity ID
        county_parish:
          type: string
          nullable: true
          description: County or parish name
          example: Fulton County
        is_indigenous:
          type: boolean
          default: false
          description: Whether customer identifies as indigenous
        is_veteran:
          type: boolean
          default: false
          description: Whether customer is a veteran
        is_senior:
          type: boolean
          default: false
          description: Whether customer is a senior
        is_first_responder:
          type: boolean
          default: false
          description: Whether customer is a first responder
        property_details:
          type: object
          default: {}
          description: Additional property details as JSONB
        utility_rate_plan:
          type: string
          nullable: true
          description: Customer's utility rate plan
          example: R-1B
        utility_account_status:
          type: string
          enum:
            - active
            - inactive
            - pending
          default: active
          description: Status of utility account
        dwelling_units:
          type: integer
          nullable: true
          description: Number of dwelling units in building
          example: 1
        is_test:
          type: boolean
          default: false
          description: Whether this is a test customer record
        customer_devices:
          type: array
          description: Array of devices associated with this customer
          items:
            $ref: '#/components/schemas/CustomerDevice'
    CustomerDevice:
      type: object
      description: Device purchased and installed by customer
      required:
        - id
        - customer_id
      properties:
        id:
          type: integer
          description: Unique identifier for this customer device record
          example: 45
        customer_id:
          type: integer
          description: ID of the customer who owns this device
          example: 609
        device_id:
          type: integer
          nullable: true
          description: ID of the device from the devices catalog
          example: 240
        quantity:
          type: integer
          default: 1
          description: Number of devices purchased
          example: 1
        purchase_price:
          type: number
          format: decimal
          nullable: true
          description: Price paid for the device
          example: 599.99
        installation_cost:
          type: number
          format: decimal
          nullable: true
          description: Cost of installation
          example: 450
        total_project_cost:
          type: number
          format: decimal
          nullable: true
          description: Total cost including equipment and installation
          example: 1049.99
        purchase_date:
          type: string
          format: date
          nullable: true
          description: Date device was purchased
          example: '2025-01-05'
        installation_date:
          type: string
          format: date
          nullable: true
          description: Date device was installed
          example: '2025-01-10'
        existing_equipment_age_years:
          type: integer
          nullable: true
          description: Age of equipment being replaced
          example: 15
        existing_equipment_operational:
          type: boolean
          nullable: true
          description: Whether existing equipment is still operational
          example: false
        existing_equipment_manufacturer:
          type: string
          maxLength: 100
          nullable: true
          description: Manufacturer of existing equipment
          example: Old Brand
        existing_equipment_model:
          type: string
          maxLength: 100
          nullable: true
          description: Model of existing equipment
          example: Model-X
        installation_location:
          type: string
          maxLength: 100
          nullable: true
          description: Where device was installed
          example: Garage
        contractor_name:
          type: string
          maxLength: 200
          nullable: true
          description: Name of contractor who performed installation
          example: ABC Electric
        contractor_license:
          type: string
          maxLength: 100
          nullable: true
          description: Contractor's license number
          example: EC-12345
        permits_obtained:
          type: boolean
          default: false
          description: Whether required permits were obtained
          example: true
        inspection_passed:
          type: boolean
          default: false
          description: Whether inspection passed
          example: true
        application_submitted_date:
          type: string
          format: date
          nullable: true
          description: Date application was submitted
          example: '2025-01-15'
        permit_number:
          type: string
          nullable: true
          description: Permit number
          example: PMT-2025-001
        vehicle_year:
          type: integer
          nullable: true
          description: Year of vehicle (for EV chargers)
          example: 2023
        vehicle_vin:
          type: string
          nullable: true
          description: Vehicle identification number
          example: 5YJ3E1EA9KF123456
        dealership:
          type: string
          nullable: true
          description: Dealership where vehicle was purchased
          example: Tesla Atlanta
        contractor_contact_email:
          type: string
          format: email
          nullable: true
          description: Contractor's email
          example: contact@abcelectric.com
        contractor_contact_phone:
          type: string
          nullable: true
          description: Contractor's phone number
          example: 555-987-6543
        contractor_website:
          type: string
          format: uri
          nullable: true
          description: Contractor's website
          example: https://www.abcelectric.com
        trenching_required:
          type: boolean
          nullable: true
          description: Whether trenching was required for installation
          example: false
        contractor_contact_name:
          type: string
          maxLength: 255
          nullable: true
          description: Name of contractor contact person
          example: Jane Smith
        contractor_address_line1:
          type: string
          maxLength: 255
          nullable: true
          description: Contractor's street address
          example: 789 Business Blvd
        contractor_city:
          type: string
          maxLength: 255
          nullable: true
          description: Contractor's city
          example: Atlanta
        contractor_state:
          type: string
          maxLength: 255
          nullable: true
          description: Contractor's state
          example: GA
        contractor_zip:
          type: string
          maxLength: 20
          nullable: true
          description: Contractor's ZIP code
          example: '30301'
        existing_equipment_photos_provided:
          type: boolean
          nullable: true
          description: Whether photos of existing equipment were provided
        existing_equipment_serial:
          type: string
          maxLength: 255
          nullable: true
          description: Serial number of existing equipment
        existing_heating_type:
          type: string
          maxLength: 255
          nullable: true
          description: Type of existing heating system
          example: Gas furnace
        device_serial:
          type: string
          maxLength: 255
          nullable: true
          description: Serial number of new device
          example: SN-123456789
        louvered_sides:
          type: boolean
          nullable: true
          description: Whether device has louvered sides
        contractor_fax:
          type: string
          nullable: true
          description: Contractor's fax number
        coil_make_model:
          type: string
          nullable: true
          description: Make and model of coil (for HVAC)
        added_by:
          type: string
          enum:
            - organization
            - customer
          description: >-
            Indicates who added the device record: 'organization' when created
            via incentives lookup, or 'customer' when added directly by the
            customer or partner.
          example: organization
        device:
          type: object
          nullable: true
          description: >-
            Device information from the devices catalog (only present when
            device_id is set)
          properties:
            model_name:
              type: string
              nullable: true
              description: Marketing or product line name for the device
              example: Smart Splitter
            manufacturer:
              type: string
              nullable: true
              description: Company or brand that manufactures the device
              example: ChargePoint
            manufacture_year:
              type: integer
              nullable: true
              description: Year the specific unit was manufactured
              example: 2024
            device_category_name:
              type: string
              nullable: true
              description: >-
                Name of the device category (e.g., EV Charger, HVAC, Water
                Heater)
              example: EV Charger
        created_at:
          type: string
          format: date-time
          description: Timestamp when record was created
          example: '2025-01-10T12:00:00Z'
        updated_at:
          type: string
          format: date-time
          description: Timestamp when record was last updated
          example: '2025-01-15T14:30:00Z'
  responses:
    UnauthorizedError:
      description: API key is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >
        API key for authentication. Include your Leap API key in the `x-api-key`
        header: `x-api-key: leap_live_...`
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Clerk JWT token for portal authentication

````