# AmpVerve Platform API > Telemetry ingestion, asset registry, market data and flexibility settlement for distributed energy resources. Version 2026-10-15. Every operation carries x-ampverve-status: > live, awaiting-migration (available after scheduled maintenance: a database change it needs is not yet applied), > partner-gated (available on request) or demo-realm (demo environment: acts only on simulated devices in demo > organisations). x-ampverve-data-basis is measured, stored, configured, calculated, forecast or simulated, and > x-ampverve-method says how a calculated, forecast or simulated figure is produced. Base URL https://app.ampverve.com; > a sandbox API key selects the sandbox. - [Documentation](https://www.ampverve.com/api-docs/): guides and the full reference, rendered from the live specification - [OpenAPI 3.1 JSON](https://app.ampverve.com/api-docs/openapi.json): the machine readable contract - [Changelog feed](https://app.ampverve.com/api-docs/changelog.atom): Atom 1.0, one entry per dated change - [Postman collection](https://app.ampverve.com/api-docs/postman.json): v2.1, the operations an API key can call plus the public ones, built from the same spec ## Guides - [Quickstart](https://www.ampverve.com/api-docs/#quickstart): First authenticated call in curl, Python and JavaScript - [Authentication](https://www.ampverve.com/api-docs/#authentication): API keys (avk_, scopes, expiry, rotation) and access tokens - [Environments](https://www.ampverve.com/api-docs/#environments): The production base URL and the sandbox - [Sandbox](https://www.ampverve.com/api-docs/#sandbox): Simulated sites, devices, telemetry, alerts and test webhooks, selected by a sandbox API key - [Errors](https://www.ampverve.com/api-docs/#errors): The error body shapes in use today and the common status codes - [Resource IDs](https://www.ampverve.com/api-docs/#resource-ids): Identifier formats - [Pagination](https://www.ampverve.com/api-docs/#pagination): The pagination patterns in use - [Rate limits](https://www.ampverve.com/api-docs/#limits): The published limits - [Versioning and changelog](https://www.ampverve.com/api-docs/#versioning): Date versioning, deprecation and the dated changelog - [Webhooks](https://www.ampverve.com/api-docs/#webhooks): Events, signature verification and retries - [Status labels](https://www.ampverve.com/api-docs/#status-labels): live, awaiting-migration, partner-gated and demo-realm, and the data basis ## Webhooks ### Webhook events - [Event alert.raised](https://www.ampverve.com/api-docs/#webhook-alert-raised-post): An alert was raised in your organisation - [Event alert.resolved](https://www.ampverve.com/api-docs/#webhook-alert-resolved-post): An alert in your organisation was resolved - [Event device.offline](https://www.ampverve.com/api-docs/#webhook-device-offline-post): A device in your organisation stopped reporting - [Event webhook.test](https://www.ampverve.com/api-docs/#webhook-webhook-test-post): A test delivery you asked for - [Event emsAlertRouted](https://www.ampverve.com/api-docs/#webhook-emsalertrouted-post): EMS alert delivered to a routing rule's webhook channel ### Webhook endpoints - [GET /api/devtools/webhooks](https://www.ampverve.com/api-docs/#op-listwebhooks): List this organisation's webhook endpoints (live) - [POST /api/devtools/webhooks](https://www.ampverve.com/api-docs/#op-createwebhook): Register a webhook endpoint (signing secret shown once) (live) - [DELETE /api/devtools/webhooks/{endpoint_id}](https://www.ampverve.com/api-docs/#op-deletewebhook): Delete a webhook endpoint (live) - [PATCH /api/devtools/webhooks/{endpoint_id}](https://www.ampverve.com/api-docs/#op-updatewebhook): Change, disable or re-enable a webhook endpoint (live) - [POST /api/devtools/webhooks/{endpoint_id}/rotate-secret](https://www.ampverve.com/api-docs/#op-rotatewebhooksecret): Rotate a webhook signing secret (new secret shown once) (live) - [GET /api/devtools/webhooks/{endpoint_id}/deliveries](https://www.ampverve.com/api-docs/#op-listwebhookdeliveries): Delivery log for one endpoint (live) - [POST /api/devtools/webhooks/{endpoint_id}/test](https://www.ampverve.com/api-docs/#op-sendwebhooktestevent): Queue a signed test event to one endpoint (live) ## Connect ### Site onboarding - [GET /api/hardware/sites/templates](https://www.ampverve.com/api-docs/#op-listsitetemplates): Site templates available to the organisation (live) - [POST /api/hardware/sites/templates](https://www.ampverve.com/api-docs/#op-createsitetemplate): Add an organisation template (live) - [POST /api/hardware/sites/from-template](https://www.ampverve.com/api-docs/#op-createsitefromtemplate): Create a site from a template and propose its device mapping (live) - [GET /api/hardware/sites/onboarding/runs](https://www.ampverve.com/api-docs/#op-listonboardingruns): Onboarding runs of the organisation with their timings (live) - [GET /api/hardware/sites/{site_id}/onboarding](https://www.ampverve.com/api-docs/#op-getsiteonboarding): Latest onboarding run and confirmed mapping of a site (live) - [POST /api/hardware/sites/{site_id}/confirm-mapping](https://www.ampverve.com/api-docs/#op-confirmsitemapping): Confirm the proposed mapping and stop the onboarding clock (live) ### Assets - [GET /api/twin/](https://www.ampverve.com/api-docs/#op-listassets): List assets (live) - [POST /api/twin/](https://www.ampverve.com/api-docs/#op-createasset): Register an asset (live) - [PUT /api/twin/{asset_id}](https://www.ampverve.com/api-docs/#op-updateasset): Update an asset (live) - [DELETE /api/twin/{asset_id}](https://www.ampverve.com/api-docs/#op-deleteasset): Delete an asset (live) - [GET /api/twin/registry/vocabulary](https://www.ampverve.com/api-docs/#op-gettwinregistryvocabulary): Twin asset classes, allowed parents and freshness bands (live) - [GET /api/twin/registry/sites](https://www.ampverve.com/api-docs/#op-listtwinsites): Your organisation's sites with registry counts (live) - [GET /api/twin/registry/assets](https://www.ampverve.com/api-docs/#op-listtwinassets): List registry assets, with filters (live) - [POST /api/twin/registry/assets](https://www.ampverve.com/api-docs/#op-createtwinasset): Register an asset (live) - [GET /api/twin/registry/assets/{asset_id}](https://www.ampverve.com/api-docs/#op-gettwinasset): One asset with live freshness and posture (live) - [DELETE /api/twin/registry/assets/{asset_id}](https://www.ampverve.com/api-docs/#op-deletetwinasset): Delete a childless asset (live) - [PATCH /api/twin/registry/assets/{asset_id}](https://www.ampverve.com/api-docs/#op-updatetwinasset): Edit, move or re-link an asset (live) - [GET /api/twin/registry/sites/{site_id}/topology](https://www.ampverve.com/api-docs/#op-gettwinsitetopology): The site's single line as a tree, with validation findings (live) - [POST /api/twin/registry/sites/{site_id}/import-devices](https://www.ampverve.com/api-docs/#op-importtwindevices): Register every device on the site that has no record yet (live) ### Devices - [GET /api/hardware/source-priority](https://www.ampverve.com/api-docs/#op-listsourcepriority): List per-asset source priority settings (live) - [PUT /api/hardware/source-priority](https://www.ampverve.com/api-docs/#op-putsourcepriority): Set the source priority for one asset at one site (live) - [GET /api/hardware/source-priority/resolve](https://www.ampverve.com/api-docs/#op-resolvesourcepriority): Current telemetry for one asset, one source per measurement (live) - [GET /api/hardware/devices/health](https://www.ampverve.com/api-docs/#op-listdevicehealth): Connectivity and freshness of every connected device (live) - [GET /api/hardware/vehicles](https://www.ampverve.com/api-docs/#op-listvehicles): Connected vehicles (live) - [GET /api/hardware/vehicles/telemetry/all](https://www.ampverve.com/api-docs/#op-getallvehicletelemetry): Live telemetry from every connected vehicle (live) - [GET /api/hardware/smartmeter](https://www.ampverve.com/api-docs/#op-listsmartmeters): Connected smart meters with current readings (live) - [GET /api/hardware/chargers](https://www.ampverve.com/api-docs/#op-listchargers): Connected chargers with current readings (live) - [GET /api/hardware/solar](https://www.ampverve.com/api-docs/#op-listsolar): Connected solar inverters with current readings (live) - [GET /api/hardware/battery](https://www.ampverve.com/api-docs/#op-listbatteries): Connected batteries (live) - [GET /api/hardware/heatpump](https://www.ampverve.com/api-docs/#op-listheatpumps): Connected heat pumps with current readings (live) ### Fleet telematics - [GET /api/hardware/fleet/telematics/vehicles](https://www.ampverve.com/api-docs/#op-listfleettelematicsvehicles): Latest measured position and ignition for each vehicle (live) ### Ingestion - [POST /api/telemetry/ingest](https://www.ampverve.com/api-docs/#op-ingesttelemetry): Ingest telemetry records (live) ### Data integrity - [GET /api/hardware/data-integrity/assets](https://www.ampverve.com/api-docs/#op-listintegrityassets): Registered assets grouped by site (live) - [GET /api/hardware/data-integrity/commissioning](https://www.ampverve.com/api-docs/#op-getcommissioningfindings): Latest commissioning run for one site (live) - [POST /api/hardware/data-integrity/commissioning/run](https://www.ampverve.com/api-docs/#op-runcommissioningchecks): Run the commissioning checks now (live) ### Gateway link and buffering - [POST /api/hardware/ems/comms/{site_id}/heartbeat](https://www.ampverve.com/api-docs/#op-postcommsheartbeat): Gateway heartbeat (live) - [GET /api/hardware/ems/comms/{site_id}/status](https://www.ampverve.com/api-docs/#op-getcommsstatus): Link state, declared fail-safe state and when it was last exercised (live) - [POST /api/hardware/ems/comms/{site_id}/check](https://www.ampverve.com/api-docs/#op-runcommscheck): Run the watchdog check now (live) - [POST /api/hardware/ems/buffer/{site_id}/replay](https://www.ampverve.com/api-docs/#op-replaygatewaybuffer): Replay a batch of readings the gateway buffered while offline (live) - [GET /api/hardware/ems/buffer/{site_id}/status](https://www.ampverve.com/api-docs/#op-getgatewaybufferstatus): Buffered, replayed and gap counts per device, with the replay log (live) - [GET /api/hardware/ems/buffer/{site_id}/rows](https://www.ampverve.com/api-docs/#op-listgatewaybufferrows): Buffered readings held for the site, in device and sequence order (live) ### Home Assistant connector - [GET /api/telemetry/connectors/home-assistant/v1/sites/{site_id}/mapping](https://www.ampverve.com/api-docs/#op-haconnectorgetmapping): The confirmed entity mapping for a connector site (live) - [POST /api/telemetry/connectors/home-assistant/v1/sites/{site_id}/report](https://www.ampverve.com/api-docs/#op-haconnectorpostreport): Send the entity discovery and proposed mapping report (live) - [POST /api/telemetry/connectors/home-assistant/v1/sites/{site_id}/telemetry](https://www.ampverve.com/api-docs/#op-haconnectorposttelemetry): Push normalised readings and connector health (live) - [GET /api/telemetry/connectors/home-assistant/sites](https://www.ampverve.com/api-docs/#op-haconnectorlistsites): Home Assistant connector sites of the caller's organisation (live) - [GET /api/telemetry/connectors/home-assistant/sites/{site_id}](https://www.ampverve.com/api-docs/#op-haconnectorgetsite): A connector site's report, proposed and confirmed mapping, and health (live) - [GET /api/telemetry/connectors/home-assistant/sites/{site_id}/health](https://www.ampverve.com/api-docs/#op-haconnectorgethealth): Connectivity health of a connector site (live) - [PUT /api/telemetry/connectors/home-assistant/sites/{site_id}/mapping](https://www.ampverve.com/api-docs/#op-haconnectorconfirmmapping): Confirm (or edit and confirm) a connector site's mapping (live) - [DELETE /api/telemetry/connectors/home-assistant/sites/{site_id}/mapping](https://www.ampverve.com/api-docs/#op-haconnectorwithdrawmapping): Withdraw a connector site's confirmed mapping (live) ## Monitor ### Telemetry - [GET /api/telemetry/live/events](https://www.ampverve.com/api-docs/#op-listliveevents): Read the most recent telemetry events (live) - [GET /api/telemetry/assets/{asset_type}/{asset_id}/history](https://www.ampverve.com/api-docs/#op-getassethistory): Bucketed history for one asset (live) ### Site energy - [GET /api/telemetry/sites](https://www.ampverve.com/api-docs/#op-listsites): Sites of this organisation and the assets each carries (live) - [GET /api/telemetry/sites/{site_id}/self-consumption](https://www.ampverve.com/api-docs/#op-getsiteselfconsumption): Generation split into self-consumed and exported (live) - [GET /api/telemetry/sites/{site_id}/battery/state](https://www.ampverve.com/api-docs/#op-getsitebatterystate): Battery state and health for a site (live) - [GET /api/telemetry/portfolio/league](https://www.ampverve.com/api-docs/#op-getportfolioleague): Every site in the organisation, ranked on a stated basis (live) - [GET /api/telemetry/sites/{site_id}/capacity](https://www.ampverve.com/api-docs/#op-getsitecapacityreview): Agreed supply capacity against measured maximum demand (live) - [GET /api/telemetry/sites/{site_id}/capacity/peaks](https://www.ampverve.com/api-docs/#op-getsitecapacitypeaks): Peak demand analysis and a peak shaving what-if (live) ### EMS reporting - [GET /api/hardware/ems/sites](https://www.ampverve.com/api-docs/#op-listemssites): List EMS sites (live) - [GET /api/hardware/ems/sites/{site_id}/settings](https://www.ampverve.com/api-docs/#op-getemssitesettings): Read one site's EMS settings (live) - [PUT /api/hardware/ems/sites/{site_id}/settings](https://www.ampverve.com/api-docs/#op-putemssitesettings): Write one site's EMS settings (live) - [GET /api/hardware/ems/report](https://www.ampverve.com/api-docs/#op-getemsreport): Energy and carbon report for one site (live) - [GET /api/hardware/ems/exports/interval.csv](https://www.ampverve.com/api-docs/#op-getemsintervalcsv): Half hourly interval data for one site, as CSV (live) - [GET /api/hardware/ems/exports/interval](https://www.ampverve.com/api-docs/#op-getemsintervalexportinfo): What the interval CSV would contain, without the rows (live) - [GET /api/hardware/ems/exports/energy-summary](https://www.ampverve.com/api-docs/#op-getemsenergysummary): Monthly energy summary for one site, per local day (live) - [GET /api/hardware/ems/lineage](https://www.ampverve.com/api-docs/#op-getemsfigurelineage): Lineage tree under one report figure (live) - [GET /api/hardware/ems/lineage/reading](https://www.ampverve.com/api-docs/#op-getemsreadingdetail): One source reading by natural key (live) - [GET /api/hardware/ems/underperformance](https://www.ampverve.com/api-docs/#op-getemsunderperformance): PV underperformance for one site (live) - [GET /api/hardware/ems/underperformance/attribution](https://www.ampverve.com/api-docs/#op-getemslossattribution): Loss attribution for one site's PV shortfall (live) - [GET /api/hardware/ems/out-of-hours](https://www.ampverve.com/api-docs/#op-getemsoutofhours): Out-of-hours consumption and baseload for one site (live) - [GET /api/hardware/ems/pv-calibration](https://www.ampverve.com/api-docs/#op-getemspvcalibration): Applied PV performance ratio calibration and its history (live) - [POST /api/hardware/ems/pv-calibration](https://www.ampverve.com/api-docs/#op-runemspvcalibration): Fit the PV performance ratio on the site's own readings (live) ### EMS alerts - [GET /api/hardware/ems/alerts](https://www.ampverve.com/api-docs/#op-listemsalerts): Alert queue ranked by pound impact (live) - [POST /api/hardware/ems/alerts/evaluate](https://www.ampverve.com/api-docs/#op-evaluateemsalerts): Evaluate telemetry and raise or update alerts (live) - [GET /api/hardware/ems/alerts/policy](https://www.ampverve.com/api-docs/#op-getemsalertpolicy): Severity thresholds in force (live) - [PUT /api/hardware/ems/alerts/policy](https://www.ampverve.com/api-docs/#op-putemsalertpolicy): Set severity thresholds (live) - [DELETE /api/hardware/ems/alerts/policy](https://www.ampverve.com/api-docs/#op-resetemsalertpolicy): Reset severity thresholds to the platform defaults (live) ### EMS alert routing - [GET /api/hardware/ems/routing/rules](https://www.ampverve.com/api-docs/#op-listemsroutingrules): Alert routing rules, with whether each rule's channel can deliver (live) - [POST /api/hardware/ems/routing/rules](https://www.ampverve.com/api-docs/#op-createemsroutingrule): Create an alert routing rule (live) - [PUT /api/hardware/ems/routing/rules/{rule_id}](https://www.ampverve.com/api-docs/#op-updateemsroutingrule): Update an alert routing rule (live) - [DELETE /api/hardware/ems/routing/rules/{rule_id}](https://www.ampverve.com/api-docs/#op-deleteemsroutingrule): Delete an alert routing rule (live) - [GET /api/hardware/ems/routing/channels](https://www.ampverve.com/api-docs/#op-getemsroutingchannels): Which delivery channels can deliver (live) - [POST /api/hardware/ems/routing/dispatch](https://www.ampverve.com/api-docs/#op-dispatchemsalerts): Route one alert, or every open alert, under the matching rules now (live) - [POST /api/hardware/ems/routing/escalations/check](https://www.ampverve.com/api-docs/#op-checkemsalertescalations): Escalate alerts still unacknowledged after a rule's window (live) - [GET /api/hardware/ems/routing/deliveries](https://www.ampverve.com/api-docs/#op-listemsroutingdeliveries): Delivery log (live) ### Alerts - [GET /api/hardware/admin/alerts-history](https://www.ampverve.com/api-docs/#op-listalerthistory): Platform staff only: persisted alerts across every organisation (live) - [POST /api/hardware/admin/alerts-history/{alert_id}/acknowledge](https://www.ampverve.com/api-docs/#op-acknowledgealert): Record that a named person has seen the alert (live) - [POST /api/hardware/admin/alerts-history/{alert_id}/assign](https://www.ampverve.com/api-docs/#op-assignalert): Give the alert a named owner (live) - [POST /api/hardware/admin/alerts-history/{alert_id}/resolve](https://www.ampverve.com/api-docs/#op-resolvealert): Close the alert, recording who and why (live) - [POST /api/hardware/admin/alerts-history/{alert_id}/comment](https://www.ampverve.com/api-docs/#op-commentonalert): Append a comment to the alert, stamped with who and when (live) - [GET /api/hardware/admin/alerts-history/stats](https://www.ampverve.com/api-docs/#op-getalertstats): Alert queue volumes, response times and unowned or unexplained alerts (live) ### Field - [GET /api/hardware/field/vocabulary](https://www.ampverve.com/api-docs/#op-getfieldvocabulary): Work order statuses, allowed transitions, priorities and resolution codes (live) - [GET /api/hardware/field/assets](https://www.ampverve.com/api-docs/#op-listfieldassets): Registry devices with feed freshness and live work orders (live) - [GET /api/hardware/field/alerts](https://www.ampverve.com/api-docs/#op-listfieldopenalerts): Open alerts with the work order raised from each (live) - [GET /api/hardware/field/sla-policies](https://www.ampverve.com/api-docs/#op-getfieldslapolicies): SLA policy in force per priority, with the platform defaults (live) - [PUT /api/hardware/field/sla-policies/{priority}](https://www.ampverve.com/api-docs/#op-putfieldslapolicy): Set the organisation's SLA policy for one priority (live) - [DELETE /api/hardware/field/sla-policies/{priority}](https://www.ampverve.com/api-docs/#op-resetfieldslapolicy): Remove the organisation's policy so the platform default applies (live) - [GET /api/hardware/field/work-orders](https://www.ampverve.com/api-docs/#op-listfieldworkorders): Dispatch list, filtered by status, priority, site, assignee and SLA risk (live) - [POST /api/hardware/field/work-orders](https://www.ampverve.com/api-docs/#op-createfieldworkorder): Raise a work order by hand against the asset registry (live) - [GET /api/hardware/field/work-orders/due](https://www.ampverve.com/api-docs/#op-listfieldworkordersdue): Active work orders already breached or due inside the window (live) - [GET /api/hardware/field/reports/sla](https://www.ampverve.com/api-docs/#op-getfieldslareport): SLA report for the organisation over a period (live) - [POST /api/hardware/field/work-orders/from-alert/{alert_id}](https://www.ampverve.com/api-docs/#op-createfieldworkorderfromalert): Raise a work order from an alert, linked both ways (live) - [POST /api/hardware/field/work-orders/from-stale-feed/{device_id}](https://www.ampverve.com/api-docs/#op-createfieldworkorderfromstalefeed): Raise a work order for a device whose feed has stopped (live) - [GET /api/hardware/field/work-orders/{work_order_id}](https://www.ampverve.com/api-docs/#op-getfieldworkorder): One work order with its timeline, notes, attachments and links (live) - [POST /api/hardware/field/work-orders/{work_order_id}/assign](https://www.ampverve.com/api-docs/#op-assignfieldworkorder): Assign to a named person or contractor (live) - [POST /api/hardware/field/work-orders/{work_order_id}/transition](https://www.ampverve.com/api-docs/#op-transitionfieldworkorder): Move the work order along its lifecycle (live) - [POST /api/hardware/field/work-orders/{work_order_id}/priority](https://www.ampverve.com/api-docs/#op-changefieldworkorderpriority): Re-prioritise and recompute the due-bys (live) - [POST /api/hardware/field/work-orders/{work_order_id}/notes](https://www.ampverve.com/api-docs/#op-addfieldworkordernote): Append a note (live) - [POST /api/hardware/field/work-orders/{work_order_id}/attachments](https://www.ampverve.com/api-docs/#op-addfieldworkorderattachment): Record an attachment's metadata (no file is stored) (live) ### Notifications - [GET /api/notifications/](https://www.ampverve.com/api-docs/#op-listnotifications): The calling user's notifications, newest first (live) - [GET /api/notifications/unread-count](https://www.ampverve.com/api-docs/#op-getunreadnotificationcount): Unread count for the calling user (live) - [POST /api/notifications/{notification_id}/read](https://www.ampverve.com/api-docs/#op-marknotificationread): Mark one of your notifications read (live) - [POST /api/notifications/read-all](https://www.ampverve.com/api-docs/#op-markallnotificationsread): Mark all of your notifications read (live) - [GET /api/notifications/preferences](https://www.ampverve.com/api-docs/#op-getnotificationpreferences): The calling user's notification preferences (live) - [PUT /api/notifications/preferences](https://www.ampverve.com/api-docs/#op-updatenotificationpreferences): Update the calling user's notification preferences (live) ### Fleet readiness - [GET /api/fleet/readiness](https://www.ampverve.com/api-docs/#op-getfleetreadinessboard): Departure readiness board for one site (live) - [GET /api/fleet/readiness/electrification](https://www.ampverve.com/api-docs/#op-getfleetelectrificationclass): Fleet electrification class from the evidence present (live) - [GET /api/fleet/depot](https://www.ampverve.com/api-docs/#op-getfleetdepot): The depot's operating envelope, chargers and live charging load (live) - [GET /api/fleet/depot/constraints](https://www.ampverve.com/api-docs/#op-getfleetdepotconstraints): Flexibility envelopes per vehicle and for the site (live) - [PUT /api/fleet/depot/constraints](https://www.ampverve.com/api-docs/#op-putfleetdepotconstraints): Set the site import or export limit and the mobility reserve (live) - [GET /api/fleet/shift-schedule](https://www.ampverve.com/api-docs/#op-getfleetshiftschedule): Departure requirements at the site (live) - [PUT /api/fleet/shift-schedule](https://www.ampverve.com/api-docs/#op-putfleetshiftschedule): Replace the shift schedule requirements at the site (live) - [POST /api/fleet/requirements/import](https://www.ampverve.com/api-docs/#op-importfleetdeparturerequirements): Import departure requirements from CSV (live) ## Optimise ### Tariffs and prices - [GET /api/trading/prices/octopus-agile](https://www.ampverve.com/api-docs/#op-getagileprices): Octopus Agile half hourly import prices (live) - [GET /api/trading/prices/regions](https://www.ampverve.com/api-docs/#op-listregions): UK GSP region codes (live) - [GET /api/trading/prices/current](https://www.ampverve.com/api-docs/#op-getcurrentprice): Current price slot and next cheap window (live) ### Charges and pricing - [GET /api/trading/cost/library](https://www.ampverve.com/api-docs/#op-getchargelibrary): Read the GB charge library (live) - [POST /api/trading/cost/library/rates](https://www.ampverve.com/api-docs/#op-republishchargerate): Append one rate row (live) - [POST /api/trading/cost/library/time-bands](https://www.ampverve.com/api-docs/#op-addduostimebands): Append DUoS time band rows (live) - [GET /api/trading/cost/mpans](https://www.ampverve.com/api-docs/#op-listmpanconfigs): List MPAN charge configurations (live) - [POST /api/trading/cost/mpans](https://www.ampverve.com/api-docs/#op-creatempanconfig): Add an MPAN charge configuration (live) - [POST /api/trading/cost/price](https://www.ampverve.com/api-docs/#op-priceenergy): Price a batch of half hours at an MPAN (live) - [GET /api/trading/cost/stack](https://www.ampverve.com/api-docs/#op-getchargestack): Full charge stack for an MPAN at an instant (live) ### Retail tariffs - [GET /api/trading/retail-tariffs](https://www.ampverve.com/api-docs/#op-listretailtariffs): List the organisation's retail tariffs (latest version of each) (live) - [POST /api/trading/retail-tariffs](https://www.ampverve.com/api-docs/#op-createretailtariff): Store a new retail tariff as version 1 (live) - [POST /api/trading/retail-tariffs/validate](https://www.ampverve.com/api-docs/#op-validateretailtariff): Validate a retail tariff definition without storing it (live) - [GET /api/trading/retail-tariffs/{tariff_id}](https://www.ampverve.com/api-docs/#op-getretailtariff): Every version of one retail tariff (live) - [POST /api/trading/retail-tariffs/{tariff_id}/versions](https://www.ampverve.com/api-docs/#op-addretailtariffversion): Store the next version of a retail tariff (live) - [POST /api/trading/retail-tariffs/bill](https://www.ampverve.com/api-docs/#op-calculateretailbill): Line item bill for a stored tariff over a period (live) - [POST /api/trading/retail-tariffs/compare](https://www.ampverve.com/api-docs/#op-compareretailtariffs): The same consumption under several stored tariffs, ranked (live) - [POST /api/trading/retail-tariffs/smart-bands](https://www.ampverve.com/api-docs/#op-designsmartbands): Design time bands and rates from a cost curve (live) - [POST /api/trading/retail-tariffs/cost-plus](https://www.ampverve.com/api-docs/#op-costplusretailrates): Unit rates per band from cost components (live) ### Hub - [GET /api/csms/api/hub/sites](https://www.ampverve.com/api-docs/#op-listhubsites): Public charging sites with live price, availability and reliability (live) - [POST /api/csms/api/hub/sites](https://www.ampverve.com/api-docs/#op-createhubsite): Create a public charging site (live) - [GET /api/csms/api/hub/sites/{site_id}](https://www.ampverve.com/api-docs/#op-gethubsite): One site with its charge points and schedule versions (live) - [PUT /api/csms/api/hub/sites/{site_id}](https://www.ampverve.com/api-docs/#op-updatehubsite): Replace a site's settings (live) - [POST /api/csms/api/hub/sites/{site_id}/charge-points](https://www.ampverve.com/api-docs/#op-attachhubchargepoint): Place a registered CSMS charger at a site (live) - [GET /api/csms/api/hub/sites/{site_id}/price-schedules](https://www.ampverve.com/api-docs/#op-listhubpriceschedules): Every version of the site's price schedule (live) - [POST /api/csms/api/hub/sites/{site_id}/price-schedules](https://www.ampverve.com/api-docs/#op-createhubpriceschedule): Compute a new draft price schedule version (live) - [POST /api/csms/api/hub/sites/{site_id}/price-schedules/{version}/publish](https://www.ampverve.com/api-docs/#op-publishhubpriceschedule): Publish a draft version to drivers (live) - [GET /api/csms/api/hub/sites/{site_id}/quote](https://www.ampverve.com/api-docs/#op-quotehubprice): The price a driver sees now at a connector (live) - [GET /api/csms/api/hub/sites/{site_id}/transactions](https://www.ampverve.com/api-docs/#op-listhubtransactions): Recent OCPP transactions at the site (live) - [GET /api/csms/api/hub/transactions/{transaction_id}/cost](https://www.ampverve.com/api-docs/#op-costhubtransaction): Itemised cost of a completed OCPP transaction (live) - [GET /api/csms/api/hub/sites/{site_id}/reliability](https://www.ampverve.com/api-docs/#op-gethubreliability): Reliability and utilisation per charger and for the site (live) - [GET /api/csms/api/hub/sites/{site_id}/compliance](https://www.ampverve.com/api-docs/#op-gethubcompliance): PCPR 2023 check for the site (live) - [POST /api/csms/api/hub/sites/{site_id}/load-sharing](https://www.ampverve.com/api-docs/#op-sharehubload): Share the site import limit across active sessions (live) - [GET /api/csms/api/hub/regulations](https://www.ampverve.com/api-docs/#op-listhubregulations): The PCPR 2023 rules as data (live) ### Forecasting - [GET /api/optimiser/forecasting/sites](https://www.ampverve.com/api-docs/#op-listforecastsites): Your sites with forecast freshness and validation status (live) - [GET /api/optimiser/forecasting/sites/{site_id}/config](https://www.ampverve.com/api-docs/#op-getforecastsiteconfig): Forecast configuration for a site and the values the model resolved (live) - [PUT /api/optimiser/forecasting/sites/{site_id}/config](https://www.ampverve.com/api-docs/#op-putforecastsiteconfig): Set a site's coordinates, array geometry and holiday division (live) - [GET /api/optimiser/forecasting/sites/{site_id}/forecast](https://www.ampverve.com/api-docs/#op-getsiteforecast): The latest 48 hour forecast for a site (live) - [GET /api/optimiser/forecasting/sites/{site_id}/forecast-vs-actual](https://www.ampverve.com/api-docs/#op-getsiteforecastvsactual): An earlier forecast against what the site measured (live) - [GET /api/optimiser/forecasting/sites/{site_id}/metrics](https://www.ampverve.com/api-docs/#op-getsiteforecastmetrics): Backtest results for a site, newest first (live) - [POST /api/optimiser/forecasting/sites/{site_id}/backtest](https://www.ampverve.com/api-docs/#op-runsiteforecastbacktest): Retrain a site's forecasts and re-run the backtests now (live) ### Optimisation - [GET /api/optimiser/import-limit/{site_id}/config](https://www.ampverve.com/api-docs/#op-getimportlimitconfig): Import threshold configured for a site (live) - [PUT /api/optimiser/import-limit/{site_id}/config](https://www.ampverve.com/api-docs/#op-putimportlimitconfig): Set the import threshold for a site (live) - [GET /api/optimiser/import-limit/{site_id}/series](https://www.ampverve.com/api-docs/#op-getimportlimitseries): The stored load series a run would optimise against (live) - [POST /api/optimiser/import-limit/{site_id}/run](https://www.ampverve.com/api-docs/#op-runimportlimit): Plan on the stored series, act on the device model, quantify avoided cost (live) - [GET /api/optimiser/import-limit/{site_id}/runs](https://www.ampverve.com/api-docs/#op-listimportlimitruns): Previous import limit runs for a site (live) - [POST /api/optimiser/tariff-schedule/{site_id}/run](https://www.ampverve.com/api-docs/#op-runtariffschedule): Day-ahead battery schedule against the full charge stack (live) - [GET /api/optimiser/tariff-schedule/{site_id}/runs](https://www.ampverve.com/api-docs/#op-listtariffscheduleruns): Recent tariff schedule runs for a site (live) - [GET /api/optimiser/tariff-schedule/{site_id}/runs/{run_id}](https://www.ampverve.com/api-docs/#op-gettariffschedulerun): One tariff schedule run (live) - [GET /api/optimiser/tariff-schedule/{site_id}/warranty](https://www.ampverve.com/api-docs/#op-listbatterywarranty): Warranty models for the site's batteries (live) - [PUT /api/optimiser/tariff-schedule/{site_id}/warranty/{device_id}](https://www.ampverve.com/api-docs/#op-putbatterywarranty): Set the warranty model for a battery (live) ### AI Brain - [GET /api/optimiser/v2x/ai-brain/awareness/catalogue](https://www.ampverve.com/api-docs/#op-getawarenesscatalogue): The twelve awareness layers and what live, fallback and missing mean (live) - [GET /api/optimiser/v2x/ai-brain/awareness/layers](https://www.ampverve.com/api-docs/#op-getawarenesslayers): Every awareness layer's status for one site, without solving (live) - [POST /api/optimiser/v2x/ai-brain/awareness/plan](https://www.ampverve.com/api-docs/#op-createawarenessshadowplan): Build, solve and record one shadow plan using every awareness layer (live) - [GET /api/optimiser/v2x/ai-brain/awareness/plan/latest](https://www.ampverve.com/api-docs/#op-getlatestawarenessplanrecord): The organisation's latest recorded shadow plan for the site (live) - [GET /api/optimiser/v2x/ai-brain/awareness/settings](https://www.ampverve.com/api-docs/#op-getawarenesssettings): Whether the settlement term is enabled for the organisation (read only) (live) - [GET /api/optimiser/v2x/ai-brain/awareness/grid](https://www.ampverve.com/api-docs/#op-getgridsnapshot): Measured GB system frequency and the latest imbalance prices (live) ### EMS control - [GET /api/hardware/ems/control/sites](https://www.ampverve.com/api-docs/#op-listemscontrolsites): Sites with their controllable device model (live) - [GET /api/hardware/ems/control/setpoints](https://www.ampverve.com/api-docs/#op-listemssetpoints): Setpoint command history (live) - [GET /api/hardware/ems/control/sites/{site_id}/config](https://www.ampverve.com/api-docs/#op-getemssitecontrolconfig): Control configuration for a site (live) - [PUT /api/hardware/ems/control/sites/{site_id}/config](https://www.ampverve.com/api-docs/#op-putemssitecontrolconfig): Set control configuration for a site (live) - [GET /api/hardware/ems/export-limit/{site_id}/events](https://www.ampverve.com/api-docs/#op-listexportlimitevents): Export limitation events with timings and accuracy (live) - [GET /api/hardware/ems/overrides](https://www.ampverve.com/api-docs/#op-listemsoverrides): Overrides for the organisation, active first (live) - [POST /api/hardware/ems/overrides](https://www.ampverve.com/api-docs/#op-createemsoverride): Take control from the loops with a recorded reason, authority and expiry (live) - [POST /api/hardware/ems/overrides/{override_id}/revoke](https://www.ampverve.com/api-docs/#op-revokeemsoverride): Release an override, recording who and why (live) ### EMS grid connection - [GET /api/hardware/ems/grid/sites/{site_id}/guardrails](https://www.ampverve.com/api-docs/#op-getemsgridguardrails): Evaluate a site against its connection terms (live) - [POST /api/hardware/ems/grid/sites/{site_id}/guardrails/evaluate](https://www.ampverve.com/api-docs/#op-evaluateemsgridguardrails): Evaluate a site against a policy document, and check a proposed change (live) - [POST /api/hardware/ems/grid/agreements/read](https://www.ampverve.com/api-docs/#op-reademsgridagreement): Read a connection agreement and propose its terms (live) - [POST /api/hardware/ems/grid/agreements/confirm](https://www.ampverve.com/api-docs/#op-confirmemsgridagreement): Confirm proposed agreement terms and compile them (not saved) (live) - [GET /api/hardware/ems/grid/sites/{site_id}/capacity](https://www.ampverve.com/api-docs/#op-getemsgridcapacity): Share the site's connection across its chargers and batteries (live) - [POST /api/hardware/ems/grid/sites/{site_id}/capacity/plan](https://www.ampverve.com/api-docs/#op-planemsgridcapacity): Plan the site's connection with given sessions and flexible loads (live) ### Decision log - [GET /api/hardware/ems/decisions](https://www.ampverve.com/api-docs/#op-listemsdecisions): Dispatch decision records, newest first (live) - [GET /api/hardware/ems/decisions/{decision_id}](https://www.ampverve.com/api-docs/#op-getemsdecision): One decision with its inputs, constraints, objective, alternatives and result (live) - [POST /api/hardware/ems/decisions/{decision_id}/replay](https://www.ampverve.com/api-docs/#op-replayemsdecision): Re-run the pure decision on the stored inputs and compare (live) ### Plan studies - [GET /api/notifications/studies/types](https://www.ampverve.com/api-docs/#op-listplanstudytypes): Study types, their inputs and parameters (live) - [GET /api/notifications/studies/templates/{study_type}/{kind}](https://www.ampverve.com/api-docs/#op-downloadplanstudytemplate): Download the template for one input (live) - [GET /api/notifications/studies/samples/{study_type}/{kind}](https://www.ampverve.com/api-docs/#op-downloadplanstudysampleinput): Download one input of the illustrative sample study (live) - [POST /api/notifications/studies/samples/{study_type}](https://www.ampverve.com/api-docs/#op-createplansamplestudy): Create the illustrative sample study (live) - [GET /api/notifications/studies](https://www.ampverve.com/api-docs/#op-listplanstudies): List the organisation's studies (live) - [POST /api/notifications/studies](https://www.ampverve.com/api-docs/#op-createplanstudy): Create a study (live) - [GET /api/notifications/studies/{study_id}](https://www.ampverve.com/api-docs/#op-getplanstudy): One study with its inputs and runs (live) - [DELETE /api/notifications/studies/{study_id}](https://www.ampverve.com/api-docs/#op-deleteplanstudy): Delete a study (live) - [PATCH /api/notifications/studies/{study_id}](https://www.ampverve.com/api-docs/#op-updateplanstudy): Change a study's name, site details or parameters (live) - [GET /api/notifications/studies/{study_id}/inputs/{kind}](https://www.ampverve.com/api-docs/#op-downloadplanstudyinput): Download an input as uploaded (live) - [PUT /api/notifications/studies/{study_id}/inputs/{kind}](https://www.ampverve.com/api-docs/#op-uploadplanstudyinput): Upload or replace one input (live) - [DELETE /api/notifications/studies/{study_id}/inputs/{kind}](https://www.ampverve.com/api-docs/#op-removeplanstudyinput): Remove an input (live) - [GET /api/notifications/studies/{study_id}/runs](https://www.ampverve.com/api-docs/#op-listplanstudyruns): The study's runs, newest first (live) - [POST /api/notifications/studies/{study_id}/runs](https://www.ampverve.com/api-docs/#op-requestplanstudyrun): Run the study's engine as a background job (live) - [GET /api/notifications/studies/{study_id}/runs/{run_id}](https://www.ampverve.com/api-docs/#op-getplanstudyrun): One run with its summary and result (live) - [GET /api/notifications/studies/{study_id}/runs/{run_id}/report](https://www.ampverve.com/api-docs/#op-getplanstudyreport): The run's HTML report (live) - [GET /api/notifications/studies/{study_id}/runs/{run_id}/proposal-pack](https://www.ampverve.com/api-docs/#op-getplanstudyproposalpack): The run's proposal pack, a ZIP to attach to your own email (live) ## Flex and markets ### Flexibility - [GET /api/vpp/vpp/flex/tenders](https://www.ampverve.com/api-docs/#op-listflextenders): Open DNO flexibility tenders (partner-gated) - [GET /api/vpp/vpp/flex/contracts](https://www.ampverve.com/api-docs/#op-listflexcontracts): Awarded flexibility contracts (partner-gated) - [POST /api/vpp/vpp/flex/offers](https://www.ampverve.com/api-docs/#op-submitflexoffer): Submit a flexibility offer (partner-gated) - [GET /api/vpp/vpp/portfolio](https://www.ampverve.com/api-docs/#op-getportfolio): Aggregate portfolio capacity (live) ### VPP enrolment - [GET /api/optimiser/vpp-signal/{site_id}/enrollment](https://www.ampverve.com/api-docs/#op-getvppenrollment): This site's enrollment in AmpVerve's own VPP (live) - [POST /api/optimiser/vpp-signal/{site_id}/enrollment](https://www.ampverve.com/api-docs/#op-enrollsiteinvpp): Enrol this site in AmpVerve's own VPP (live) - [POST /api/optimiser/vpp-signal/{site_id}/withdraw](https://www.ampverve.com/api-docs/#op-withdrawsitefromvpp): Withdraw this site from AmpVerve's own VPP (live) - [GET /api/optimiser/vpp-signal/{site_id}/signal](https://www.ampverve.com/api-docs/#op-getvppsignal): The current signal from AmpVerve's own VPP, when the site is enrolled (live) ## Settle and report ### Energy ledger and PPA - [GET /api/telemetry/sites/{site_id}/ppa/statement](https://www.ampverve.com/api-docs/#op-getsiteppastatement): PPA settlement statement for one calendar month (live) - [GET /api/telemetry/sites/{site_id}/ppa/contracts](https://www.ampverve.com/api-docs/#op-listsiteppacontracts): PPA contract rows for one site, every version (live) - [GET /api/telemetry/sites/{site_id}/ledger](https://www.ampverve.com/api-docs/#op-getsiteenergyledger): The stored energy ledger for a site, per settlement period or bucketed (live) - [GET /api/telemetry/ledger/period/{site_id}/{period_start}](https://www.ampverve.com/api-docs/#op-getenergyledgerperiod): One ledger row with its full source tree (live) - [POST /api/telemetry/sites/{site_id}/ledger/rebuild](https://www.ampverve.com/api-docs/#op-rebuildsiteenergyledger): Recompute and store the ledger rows for a site over a window (live) ### Carbon and emissions - [GET /api/trading/carbon-intensity](https://www.ampverve.com/api-docs/#op-getcarbonintensity): Current GB grid carbon intensity (live) - [GET /api/trading/carbon-intensity/forecast](https://www.ampverve.com/api-docs/#op-getcarbonforecast): Carbon intensity forecast (live) - [GET /api/hardware/ems/scope2](https://www.ampverve.com/api-docs/#op-getemsscope2): Scope 2 on both methods for one site (live) - [GET /api/hardware/ems/intensity](https://www.ampverve.com/api-docs/#op-getemsintensity): Stored half hourly grid intensity for a site's region (live) - [GET /api/hardware/ems/avoided](https://www.ampverve.com/api-docs/#op-getemsavoidedemissions): Emissions avoided by PV self consumed and by PV exported (live) - [GET /api/hardware/ems/factors/versions](https://www.ampverve.com/api-docs/#op-listemsfactorversions): Emission factor versions registered by your organisation (live) - [GET /api/hardware/ems/factors/changes](https://www.ampverve.com/api-docs/#op-listemsfactorchanges): Emission factor change log (live) - [GET /api/hardware/ems/scope2/market-factors](https://www.ampverve.com/api-docs/#op-listemsmarketfactors): List contractual market factors (live) - [POST /api/hardware/ems/scope2/market-factors](https://www.ampverve.com/api-docs/#op-addemsmarketfactor): Record a contractual market factor (live) - [GET /api/hardware/usage/carbon](https://www.ampverve.com/api-docs/#op-gethouseholdcarbonfootprint): Carbon footprint of the household's own electricity import, by day, week or month (live) ### Certificates - [GET /api/esg/](https://www.ampverve.com/api-docs/#op-listreceipts): List energy receipts (live) - [POST /api/esg/](https://www.ampverve.com/api-docs/#op-createreceipt): Create a signed energy receipt (live) ### Settlement - [GET /api/vpp/vpp/settle/receipts](https://www.ampverve.com/api-docs/#op-listsettlereceipts): List signed settlement receipts (live) - [GET /api/vpp/vpp/settle/receipts.csv](https://www.ampverve.com/api-docs/#op-exportsettlereceiptscsv): Export signed settlement receipts as CSV (live) - [POST /api/vpp/vpp/settle/receipts/issue](https://www.ampverve.com/api-docs/#op-issuesettlereceipts): Issue receipts for recorded deliveries (live) - [GET /api/vpp/vpp/settle/receipts/{receipt_id}](https://www.ampverve.com/api-docs/#op-getsettlereceipt): One receipt with its verification (live) - [GET /api/vpp/vpp/settle/receipts/{receipt_id}/verify](https://www.ampverve.com/api-docs/#op-verifysettlereceipt): Verify one receipt (live) - [POST /api/vpp/vpp/settle/receipts/{receipt_id}/share](https://www.ampverve.com/api-docs/#op-sharesettlereceipt): Publish a receipt for counterparty verification (live) - [DELETE /api/vpp/vpp/settle/receipts/{receipt_id}/share](https://www.ampverve.com/api-docs/#op-unsharesettlereceipt): Stop publishing a receipt (live) - [GET /api/vpp/vpp/settle/chain/verify](https://www.ampverve.com/api-docs/#op-verifysettlereceiptchain): Verify your organisation's receipt chain (live) - [POST /api/vpp/vpp/settle/verify](https://www.ampverve.com/api-docs/#op-verifypresentedsettlereceipt): Verify a presented copy of a receipt (live) - [GET /api/vpp/vpp/settle/reconciliation](https://www.ampverve.com/api-docs/#op-getsettlereconciliation): Reconcile receipts against counterparty statements (live) - [GET /api/vpp/vpp/settle/reconciliation.csv](https://www.ampverve.com/api-docs/#op-exportsettlereconciliationcsv): Export the reconciliation as CSV (live) - [GET /api/vpp/vpp/settle/keys](https://www.ampverve.com/api-docs/#op-listsettlesigningkeys): Published receipt verification keys (live) - [GET /api/vpp/vpp/settle/public/receipts/{receipt_hash}](https://www.ampverve.com/api-docs/#op-getsharedsettlereceipt): A shared receipt, for counterparty verification (live) ### Fleet savings statements - [GET /api/vpp/vpp/fleet-statements/sites/{site_id}/baselines](https://www.ampverve.com/api-docs/#op-listfleetbaselines): Baseline versions for a depot (awaiting-migration) - [POST /api/vpp/vpp/fleet-statements/sites/{site_id}/baselines](https://www.ampverve.com/api-docs/#op-proposefleetbaseline): Propose a baseline version for a depot (awaiting-migration) - [GET /api/vpp/vpp/fleet-statements/baselines/{baseline_id}](https://www.ampverve.com/api-docs/#op-getfleetbaseline): One baseline version (awaiting-migration) - [POST /api/vpp/vpp/fleet-statements/baselines/{baseline_id}/agree](https://www.ampverve.com/api-docs/#op-agreefleetbaseline): Agree a proposed baseline (awaiting-migration) - [POST /api/vpp/vpp/fleet-statements/baselines/{baseline_id}/withdraw](https://www.ampverve.com/api-docs/#op-withdrawfleetbaseline): Withdraw a proposed baseline (awaiting-migration) - [POST /api/vpp/vpp/fleet-statements/sites/{site_id}/statements](https://www.ampverve.com/api-docs/#op-issuefleetsavingsstatement): Issue a month's savings statement for a depot (awaiting-migration) - [GET /api/vpp/vpp/fleet-statements/statements](https://www.ampverve.com/api-docs/#op-listfleetsavingsstatements): List savings statements (awaiting-migration) - [GET /api/vpp/vpp/fleet-statements/statements/{statement_id}](https://www.ampverve.com/api-docs/#op-getfleetsavingsstatement): One savings statement as JSON (awaiting-migration) - [GET /api/vpp/vpp/fleet-statements/statements/{statement_id}/print](https://www.ampverve.com/api-docs/#op-printfleetsavingsstatement): One savings statement as a printable page (awaiting-migration) - [GET /api/vpp/vpp/fleet-statements/public/verify/{statement_hash}](https://www.ampverve.com/api-docs/#op-verifyfleetsavingsstatementhash): Check a savings statement by hash (public) (awaiting-migration) - [POST /api/vpp/vpp/fleet-statements/public/verify](https://www.ampverve.com/api-docs/#op-verifypresentedfleetsavingsstatement): Check a savings statement file (public) (awaiting-migration) ### Data export - [GET /api/organisations/export/manifest](https://www.ampverve.com/api-docs/#op-getexportmanifest): Preview what an export would contain (live) - [POST /api/organisations/export](https://www.ampverve.com/api-docs/#op-createexport): Create and execute an export job (live) - [GET /api/organisations/export/jobs/{job_id}](https://www.ampverve.com/api-docs/#op-getexportjob): Re-read an export job (live) - [GET /api/organisations/export/jobs/{job_id}/download](https://www.ampverve.com/api-docs/#op-downloadexportbundle): Download the whole export as JSON Lines (live) - [GET /api/organisations/export/jobs/{job_id}/collections/{collection}](https://www.ampverve.com/api-docs/#op-downloadexportcollection): Download one collection as JSON Lines or CSV (live) ## Commercial ### CRM - [GET /api/notifications/crm/settings](https://www.ampverve.com/api-docs/#op-getcrmsettings): The organisation's CRM settings (awaiting-migration) - [PUT /api/notifications/crm/settings](https://www.ampverve.com/api-docs/#op-putcrmsettings): Change stage probabilities or the retention period (awaiting-migration) - [GET /api/notifications/crm/forecast](https://www.ampverve.com/api-docs/#op-getcrmforecast): Pipeline value by stage and expected close month, probability weighted (awaiting-migration) - [GET /api/notifications/crm/accounts](https://www.ampverve.com/api-docs/#op-listcrmaccounts): Accounts (organisations being sold to) (awaiting-migration) - [POST /api/notifications/crm/accounts](https://www.ampverve.com/api-docs/#op-createcrmaccount): Create an account (awaiting-migration) - [GET /api/notifications/crm/accounts/{account_id}](https://www.ampverve.com/api-docs/#op-getcrmaccount): Account with its contacts, deals, tasks and activity timeline (awaiting-migration) - [DELETE /api/notifications/crm/accounts/{account_id}](https://www.ampverve.com/api-docs/#op-deletecrmaccount): Delete an account with its deals, activities and tasks (awaiting-migration) - [PATCH /api/notifications/crm/accounts/{account_id}](https://www.ampverve.com/api-docs/#op-updatecrmaccount): Change an account (awaiting-migration) - [GET /api/notifications/crm/contacts](https://www.ampverve.com/api-docs/#op-listcrmcontacts): Contacts, each with its suppression state (awaiting-migration) - [POST /api/notifications/crm/contacts](https://www.ampverve.com/api-docs/#op-createcrmcontact): Create a contact (awaiting-migration) - [GET /api/notifications/crm/contacts/{contact_id}](https://www.ampverve.com/api-docs/#op-getcrmcontact): A contact and its timeline (awaiting-migration) - [PATCH /api/notifications/crm/contacts/{contact_id}](https://www.ampverve.com/api-docs/#op-updatecrmcontact): Change a contact (awaiting-migration) - [POST /api/notifications/crm/contacts/{contact_id}/opt-out](https://www.ampverve.com/api-docs/#op-optoutcrmcontact): Record an opt out and suppress the address (awaiting-migration) - [POST /api/notifications/crm/contacts/{contact_id}/erase](https://www.ampverve.com/api-docs/#op-erasecrmcontact): Delete a contact on request (UK GDPR Article 17) (awaiting-migration) - [POST /api/notifications/crm/contacts/{contact_id}/outreach-draft](https://www.ampverve.com/api-docs/#op-draftcrmcontactoutreach): Draft an outreach email to a contact for approval (awaiting-migration) - [GET /api/notifications/crm/deals](https://www.ampverve.com/api-docs/#op-listcrmdeals): Deals, for the pipeline board (awaiting-migration) - [POST /api/notifications/crm/deals](https://www.ampverve.com/api-docs/#op-createcrmdeal): Create a deal (awaiting-migration) - [GET /api/notifications/crm/deals/{deal_id}](https://www.ampverve.com/api-docs/#op-getcrmdeal): Deal with its account, contact, stage history, tasks and timeline (awaiting-migration) - [DELETE /api/notifications/crm/deals/{deal_id}](https://www.ampverve.com/api-docs/#op-deletecrmdeal): Delete a deal (awaiting-migration) - [PATCH /api/notifications/crm/deals/{deal_id}](https://www.ampverve.com/api-docs/#op-updatecrmdeal): Change a deal's details (not its stage) (awaiting-migration) - [POST /api/notifications/crm/deals/{deal_id}/stage](https://www.ampverve.com/api-docs/#op-movecrmdealstage): Move a deal to another stage (awaiting-migration) - [GET /api/notifications/crm/activities](https://www.ampverve.com/api-docs/#op-listcrmactivities): Timeline for one account, contact or deal (awaiting-migration) - [POST /api/notifications/crm/activities](https://www.ampverve.com/api-docs/#op-logcrmactivity): Log a call, meeting, email or note (awaiting-migration) - [DELETE /api/notifications/crm/activities/{activity_id}](https://www.ampverve.com/api-docs/#op-deletecrmactivity): Delete a logged activity (awaiting-migration) - [GET /api/notifications/crm/tasks](https://www.ampverve.com/api-docs/#op-listcrmtasks): Tasks, the caller's or everyone's (awaiting-migration) - [POST /api/notifications/crm/tasks](https://www.ampverve.com/api-docs/#op-createcrmtask): Create a task (awaiting-migration) - [GET /api/notifications/crm/tasks/due](https://www.ampverve.com/api-docs/#op-listcrmtasksdue): Open tasks that are overdue or due today (UK date) (awaiting-migration) - [PATCH /api/notifications/crm/tasks/{task_id}](https://www.ampverve.com/api-docs/#op-updatecrmtask): Change a task or mark it done (awaiting-migration) - [POST /api/notifications/crm/import/tracker](https://www.ampverve.com/api-docs/#op-importcrmtracker): Import the outreach tracker CSV (awaiting-migration) - [GET /api/notifications/crm/retention/preview](https://www.ampverve.com/api-docs/#op-previewcrmretention): Contacts the next retention sweep would erase (awaiting-migration) - [POST /api/notifications/crm/retention/run](https://www.ampverve.com/api-docs/#op-runcrmretention): Erase the prospects past the retention period now (awaiting-migration) ### Lead intake - [POST /api/notifications/intake/capacity-check](https://www.ampverve.com/api-docs/#op-requestcapacitycheckstudy): Request a DepotTwin study from the Depot Capacity Check (no credential) (awaiting-migration) ## Developer tools ### API keys - [GET /api/devtools/apikeys](https://www.ampverve.com/api-docs/#op-listapikeys): List this organisation's API keys (live) - [POST /api/devtools/apikeys](https://www.ampverve.com/api-docs/#op-createapikey): Create an API key (shown once) (live) - [POST /api/devtools/apikeys/{key_id}/rotate](https://www.ampverve.com/api-docs/#op-rotateapikey): Rotate an API key (new key shown once) (live) - [POST /api/devtools/apikeys/{key_id}/revoke](https://www.ampverve.com/api-docs/#op-revokeapikey): Revoke an API key (live) ### Partner API - [GET /api/devtools/partner/v1/me](https://www.ampverve.com/api-docs/#op-partnerwhoami): The organisation and key a partner API key resolves to (live) - [GET /api/devtools/partner/v1/alerts](https://www.ampverve.com/api-docs/#op-partnerlistalerts): Alerts for the key's organisation (live) - [GET /api/devtools/partner/v1/devices](https://www.ampverve.com/api-docs/#op-partnerlistdevices): Devices registered to the key's organisation (live) - [GET /api/devtools/partner/v1/telemetry/latest](https://www.ampverve.com/api-docs/#op-partnerlatesttelemetry): Recent stored telemetry readings for the key's organisation (live) ### Sandbox - [GET /api/devtools/partner/v1/sandbox/scenario](https://www.ampverve.com/api-docs/#op-sandboxscenario): What the sandbox simulates (live) - [POST /api/devtools/partner/v1/sandbox/webhooks/test](https://www.ampverve.com/api-docs/#op-sandboxsendtestevent): Send a signed sample event to the sandbox's webhook endpoints (live) ## Platform and access ### Authentication - [POST /api/auth/login](https://www.ampverve.com/api-docs/#op-login): Exchange credentials for an access token (live) - [POST /api/auth/token/refresh](https://www.ampverve.com/api-docs/#op-refreshtoken): Rotate an access token (live) - [POST /api/auth/logout](https://www.ampverve.com/api-docs/#op-logout): Revoke a refresh token (live) - [POST /api/auth/sso/entra/exchange](https://www.ampverve.com/api-docs/#op-entrassoexchange): Exchange a Microsoft Entra ID token for an AmpVerve session (live) - [GET /api/auth/sso/entra/provider](https://www.ampverve.com/api-docs/#op-getentrassoprovider): The organisation's Entra provider configuration (live) - [PUT /api/auth/sso/entra/provider](https://www.ampverve.com/api-docs/#op-putentrassoprovider): Set the organisation's Entra provider configuration (live) - [GET /api/auth/sso/entra/mappings](https://www.ampverve.com/api-docs/#op-listentragrouprolemappings): Entra group to role mappings (live) - [POST /api/auth/sso/entra/mappings](https://www.ampverve.com/api-docs/#op-addentragrouprolemapping): Add an Entra group to role mapping (live) - [DELETE /api/auth/sso/entra/mappings/{mapping_id}](https://www.ampverve.com/api-docs/#op-removeentragrouprolemapping): Remove an Entra group to role mapping (live) - [GET /api/auth/me](https://www.ampverve.com/api-docs/#op-getme): Identity context for the bearer token (live) ### Site access - [GET /api/hardware/ems/access/personas](https://www.ampverve.com/api-docs/#op-listsitepersonas): The five site personas and what each may do (live) - [GET /api/hardware/ems/access/memberships](https://www.ampverve.com/api-docs/#op-listsitememberships): Site memberships of the organisation, with the access mode (live) - [PUT /api/hardware/ems/access/memberships](https://www.ampverve.com/api-docs/#op-grantsitemembership): Grant or replace a user's persona on a site (live) - [DELETE /api/hardware/ems/access/memberships](https://www.ampverve.com/api-docs/#op-revokesitemembership): Remove a user's persona from a site (live) - [GET /api/hardware/ems/access/me](https://www.ampverve.com/api-docs/#op-mysiteaccess): What the signed-in user may do on each site (live) ### Audit log - [GET /api/hardware/admin/audit-log](https://www.ampverve.com/api-docs/#op-listauditlog): A page of your organisation's audit trail (live) - [GET /api/hardware/admin/audit-log/actions](https://www.ampverve.com/api-docs/#op-listauditactioncatalogue): The catalogue of user actions the platform records (live) - [GET /api/hardware/admin/audit-log/export.csv](https://www.ampverve.com/api-docs/#op-exportauditlogcsv): Export the caller's audit trail as CSV (live) ### Platform - [GET /api/telemetry/healthz](https://www.ampverve.com/api-docs/#op-getingestionliveness): Ingestion liveness (live) - [GET /api/telemetry/readyz](https://www.ampverve.com/api-docs/#op-getingestionreadiness): Ingestion readiness and dependency health (live) - [GET /api/telemetry/metrics](https://www.ampverve.com/api-docs/#op-getingestionmetrics): Prometheus metrics for the ingestion layer (live) ### Platform status - [GET /api/devtools/status](https://www.ampverve.com/api-docs/#op-getpublicapistatus): Public API status by component (no credential) (live) - [GET /api/hardware/platform/status](https://www.ampverve.com/api-docs/#op-getplatformstatus): Platform status, observed availability and incident history (live) - [GET /api/hardware/platform/incidents](https://www.ampverve.com/api-docs/#op-listplatformincidents): Incident history visible to this organisation (live) - [POST /api/hardware/platform/incidents](https://www.ampverve.com/api-docs/#op-createplatformincident): Open an incident (platform administrators) (live) - [POST /api/hardware/platform/incidents/{incident_id}/updates](https://www.ampverve.com/api-docs/#op-updateplatformincident): Post a status update to an incident (platform administrators) (live) - [GET /api/hardware/platform/incidents/export.csv](https://www.ampverve.com/api-docs/#op-exportplatformincidents): Incident history as CSV (live) ## Demo environment ### Demo environment - [POST /api/hardware/ems/control/setpoints](https://www.ampverve.com/api-docs/#op-writeemssetpoint): Verified setpoint write with independent read-back (demo-realm) - [POST /api/hardware/ems/control/demo/devices/{device_id}/behaviour](https://www.ampverve.com/api-docs/#op-setemsdemodevicebehaviour): Switch a synthetic device's failure behaviour (demo realm only) (demo-realm) - [GET /api/hardware/ems/control/sites/{site_id}/balance](https://www.ampverve.com/api-docs/#op-getemssitebalance): Boundary meter reading of the site's device model (demo-realm) - [POST /api/hardware/ems/control/demo/sites/{site_id}/scenario](https://www.ampverve.com/api-docs/#op-setemsdemositescenario): Set the simulated site load and available PV (demo environment only) (demo-realm) - [POST /api/hardware/ems/export-limit/{site_id}/run](https://www.ampverve.com/api-docs/#op-runexportlimititeration): One iteration of the cloud export limitation loop (demo-realm) - [POST /api/hardware/ems/comms/{site_id}/rehearse/drop](https://www.ampverve.com/api-docs/#op-rehearsecommsdrop): Rehearsal: the gateway falls silent (demo realm only) (demo-realm) - [POST /api/hardware/ems/comms/{site_id}/rehearse/restore](https://www.ampverve.com/api-docs/#op-rehearsecommsrestore): Rehearsal: the gateway heartbeat resumes (demo realm only) (demo-realm) - [POST /api/hardware/ems/buffer/{site_id}/rehearse](https://www.ampverve.com/api-docs/#op-rehearsegatewaybufferreplay): Rehearsal: the gateway replays a buffer built from the device model (demo realm only) (demo-realm)