Download aggregated usage data as JSON.
curl --request POST \
--url https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"meterCodes": [
"<string>"
],
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"aggregationFrequency": "<unknown>",
"measures": [
{
"name": "<string>",
"aggregations": []
}
],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": [
"<string>"
],
"attributes": [
"<string>"
]
}
],
"limit": 2500
}
'import requests
url = "https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json"
payload = {
"meterCodes": ["<string>"],
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"aggregationFrequency": "<unknown>",
"measures": [
{
"name": "<string>",
"aggregations": []
}
],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": ["<string>"],
"attributes": ["<string>"]
}
],
"limit": 2500
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
meterCodes: ['<string>'],
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
aggregationFrequency: '<unknown>',
measures: [{name: '<string>', aggregations: []}],
version: 123,
dimensions: [{name: '<string>', filter: ['<string>'], attributes: ['<string>']}],
limit: 2500
})
};
fetch('https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'meterCodes' => [
'<string>'
],
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'aggregationFrequency' => '<unknown>',
'measures' => [
[
'name' => '<string>',
'aggregations' => [
]
]
],
'version' => 123,
'dimensions' => [
[
'name' => '<string>',
'filter' => [
'<string>'
],
'attributes' => [
'<string>'
]
]
],
'limit' => 2500
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json"
payload := strings.NewReader("{\n \"meterCodes\": [\n \"<string>\"\n ],\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"aggregationFrequency\": \"<unknown>\",\n \"measures\": [\n {\n \"name\": \"<string>\",\n \"aggregations\": []\n }\n ],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 2500\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"meterCodes\": [\n \"<string>\"\n ],\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"aggregationFrequency\": \"<unknown>\",\n \"measures\": [\n {\n \"name\": \"<string>\",\n \"aggregations\": []\n }\n ],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 2500\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meterCodes\": [\n \"<string>\"\n ],\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"aggregationFrequency\": \"<unknown>\",\n \"measures\": [\n {\n \"name\": \"<string>\",\n \"aggregations\": []\n }\n ],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 2500\n}"
response = http.request(request)
puts response.read_body{
"downloadUrl": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Download aggregated usage data as JSON.
Download aggregated usage data as JSON.
POST
/
organizations
/
{orgId}
/
dataexplorer
/
usagedata
/
download
/
json
Download aggregated usage data as JSON.
curl --request POST \
--url https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"meterCodes": [
"<string>"
],
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"aggregationFrequency": "<unknown>",
"measures": [
{
"name": "<string>",
"aggregations": []
}
],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": [
"<string>"
],
"attributes": [
"<string>"
]
}
],
"limit": 2500
}
'import requests
url = "https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json"
payload = {
"meterCodes": ["<string>"],
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"aggregationFrequency": "<unknown>",
"measures": [
{
"name": "<string>",
"aggregations": []
}
],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": ["<string>"],
"attributes": ["<string>"]
}
],
"limit": 2500
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
meterCodes: ['<string>'],
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
aggregationFrequency: '<unknown>',
measures: [{name: '<string>', aggregations: []}],
version: 123,
dimensions: [{name: '<string>', filter: ['<string>'], attributes: ['<string>']}],
limit: 2500
})
};
fetch('https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'meterCodes' => [
'<string>'
],
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'aggregationFrequency' => '<unknown>',
'measures' => [
[
'name' => '<string>',
'aggregations' => [
]
]
],
'version' => 123,
'dimensions' => [
[
'name' => '<string>',
'filter' => [
'<string>'
],
'attributes' => [
'<string>'
]
]
],
'limit' => 2500
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json"
payload := strings.NewReader("{\n \"meterCodes\": [\n \"<string>\"\n ],\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"aggregationFrequency\": \"<unknown>\",\n \"measures\": [\n {\n \"name\": \"<string>\",\n \"aggregations\": []\n }\n ],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 2500\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"meterCodes\": [\n \"<string>\"\n ],\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"aggregationFrequency\": \"<unknown>\",\n \"measures\": [\n {\n \"name\": \"<string>\",\n \"aggregations\": []\n }\n ],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 2500\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.m3ter.com/organizations/{orgId}/dataexplorer/usagedata/download/json")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meterCodes\": [\n \"<string>\"\n ],\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"aggregationFrequency\": \"<unknown>\",\n \"measures\": [\n {\n \"name\": \"<string>\",\n \"aggregations\": []\n }\n ],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 2500\n}"
response = http.request(request)
puts response.read_body{
"downloadUrl": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
m3ter supports machine to machine authentication using the clientCredentials OAuth2 flow.
The authorizationCode flow controls access for human users via the m3ter Console application.
Path Parameters
UUID of the organization
Body
application/json
Data Explorer query request
Codes representing Meters, or an empty list for a wildcard (i.e. all Meters).
Maximum array length:
100ISO 8601 formatted start date for the aggregation.
ISO 8601 formatted end date for the aggregation.
Measures to retrieve usage data entries for
Required array length:
1 - 30 elementsShow child attributes
Show child attributes
The version number of the entity:
- Create entity: Not valid for initial insertion of new entity - do not use for Create. On initial Create, version is set at 1 and listed in the response.
- Update Entity: On Update, version is required and must match the existing version because a check is performed to ensure sequential versioning is preserved. Version is incremented by 1 and listed in the response.
Dimensions to filter by
Maximum array length:
100Show child attributes
Show child attributes
Limit the number of data points returned
Required range:
1 <= x <= 5000Response
Contains a link to download the file.
Download link for Data Explorer data
⌘I