Skip to main content
GET
Retrieve a VPP program

Authorizations

Authorization
string
header
required

Authenticate with the bearer_token obtained from the authentication endpoint.

Path Parameters

program_id
string
required

Flatpeak Program ID.

Response

Program response.

A program you define: a VPP program, or a managed tariff when managed is true. Customers enroll in your app, or in their OEM's app once the program is listed and the OEM approves it. Enrolled devices arrive through Connect and fire device.connect.

id
string
required

Flatpeak Program ID.

Example:

"vpr_5c8d1f2a7b3e4d6c9a0f1b2c"

object
enum<string>
required

Object type, vpp_program.

Available options:
vpp_program
Example:

"vpp_program"

live_mode
boolean
required

true for live data, false for test data.

Example:

true

display_name
string
required

Program name shown to customers.

Example:

"Community Powershare"

managed
boolean
default:false
required

true for a managed tariff: you run the device under this program with plans, and it replaces the customer's tariff. Plans are accepted only for devices enrolled in a managed program. Any number of programs can be managed.

Example:

false

listed
boolean
default:true
required

true to offer the program in OEM apps to eligible devices. Listing requires OEM approval, tracked by status. A program that is not listed goes LIVE without approval and is reachable only from your own app with program_id on the Connect session.

Example:

true

currency_code
string
required

Currency of every amount on the program, as an ISO 4217 code: estimate.amount and each rate in terms.rewards. Must match the market currency of the devices the program targets. Set on create and never changed.

Example:

"USD"

estimate
object
required

What the customer is told to expect before they join. It is a projection and never binding. The copy follows managed: bill savings for a managed tariff, earnings otherwise.

terms
object
required

What binds you and the customer once they have joined: what you pay, whether they may skip events, and how long leaving takes. The enrollment keeps a copy of the terms it joined with, so a change applies only to later enrollments.

eligibility
object
required

Which devices can join the program.

enrollment
object
required

How a device gets in.

status
enum<string>
required

Only LIVE programs are shown to customers. Approval applies to listed programs; an unlisted program goes LIVE on request. Changes fire program.update.

Available options:
DRAFT,
PENDING_APPROVAL,
LIVE,
PAUSED,
REJECTED
Example:

"LIVE"

time_created
string<date-time>
required

Time when the object was created, in UTC.

Example:

"2026-08-12T09:30:00Z"

account_id
string
required

Flatpeak Account ID of the operator that owns the program.

Example:

"acc_649d465ede6a785d2fa5f905"

description
string

Short description shown to customers at enrollment.

Example:

"Earn from grid events while you keep your tariff."

url
string | null

Public page with program details.

Example:

"https://pick.com/programs/community-powershare"

rejection_reason
string | null
read-only

Why the OEM rejected the program. Set when status is REJECTED.

Example:

"Estimated earnings are not supported by the reward terms."