Query and filter for bill line items.
curl --request POST \
--url https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"lineItemTypes": [],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": [
"<string>"
],
"attributes": [
"<string>"
]
}
],
"limit": 1000
}
'import requests
url = "https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills"
payload = {
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"lineItemTypes": [],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": ["<string>"],
"attributes": ["<string>"]
}
],
"limit": 1000
}
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({
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
lineItemTypes: [],
version: 123,
dimensions: [{name: '<string>', filter: ['<string>'], attributes: ['<string>']}],
limit: 1000
})
};
fetch('https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills', 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/bills",
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([
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'lineItemTypes' => [
],
'version' => 123,
'dimensions' => [
[
'name' => '<string>',
'filter' => [
'<string>'
],
'attributes' => [
'<string>'
]
]
],
'limit' => 1000
]),
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/bills"
payload := strings.NewReader("{\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"lineItemTypes\": [],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 1000\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/bills")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"lineItemTypes\": [],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 1000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills")
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 \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"lineItemTypes\": [],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 1000\n}"
response = http.request(request)
puts response.read_body{
"values": [
{
"updatedDate": "2023-11-07T05:31:56Z",
"dimensions": {
"account": "<string>",
"accountName": "<string>",
"accountId": "<string>",
"parentAccountCode": "<string>",
"parentAccountName": "<string>",
"parentAccountId": "<string>",
"childAccountId": "<string>",
"description": "<string>",
"productName": "<string>",
"quantityUnit": "<string>",
"subtotalUnit": "<string>",
"convertedSubtotalUnit": "<string>",
"billId": "<string>",
"externalInvoiceReference": "<string>",
"commitmentId": "<string>",
"billLineItemId": "<string>"
},
"measures": {
"convertedSubtotal": 123,
"subtotal": 123,
"version": 123,
"conversionRate": 123,
"quantity": 123,
"units": 123
},
"billDetails": {
"day": 123,
"week": "<string>",
"year": 123,
"month": "<string>",
"locked": "<string>",
"status": "<string>",
"dueDate": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"servicePeriodStartDate": "<string>",
"servicePeriodEndDate": "<string>",
"billDate": "<string>",
"timezone": "<string>",
"yearMonth": "<string>",
"billCurrency": "<string>",
"billingFrequency": "<string>"
}
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}Query and filter for bill line items.
Query and filter for bill line items.
POST
/
organizations
/
{orgId}
/
dataexplorer
/
bills
Query and filter for bill line items.
curl --request POST \
--url https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"lineItemTypes": [],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": [
"<string>"
],
"attributes": [
"<string>"
]
}
],
"limit": 1000
}
'import requests
url = "https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills"
payload = {
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"lineItemTypes": [],
"version": 123,
"dimensions": [
{
"name": "<string>",
"filter": ["<string>"],
"attributes": ["<string>"]
}
],
"limit": 1000
}
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({
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
lineItemTypes: [],
version: 123,
dimensions: [{name: '<string>', filter: ['<string>'], attributes: ['<string>']}],
limit: 1000
})
};
fetch('https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills', 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/bills",
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([
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'lineItemTypes' => [
],
'version' => 123,
'dimensions' => [
[
'name' => '<string>',
'filter' => [
'<string>'
],
'attributes' => [
'<string>'
]
]
],
'limit' => 1000
]),
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/bills"
payload := strings.NewReader("{\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"lineItemTypes\": [],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 1000\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/bills")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"lineItemTypes\": [],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 1000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.m3ter.com/organizations/{orgId}/dataexplorer/bills")
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 \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"lineItemTypes\": [],\n \"version\": 123,\n \"dimensions\": [\n {\n \"name\": \"<string>\",\n \"filter\": [\n \"<string>\"\n ],\n \"attributes\": [\n \"<string>\"\n ]\n }\n ],\n \"limit\": 1000\n}"
response = http.request(request)
puts response.read_body{
"values": [
{
"updatedDate": "2023-11-07T05:31:56Z",
"dimensions": {
"account": "<string>",
"accountName": "<string>",
"accountId": "<string>",
"parentAccountCode": "<string>",
"parentAccountName": "<string>",
"parentAccountId": "<string>",
"childAccountId": "<string>",
"description": "<string>",
"productName": "<string>",
"quantityUnit": "<string>",
"subtotalUnit": "<string>",
"convertedSubtotalUnit": "<string>",
"billId": "<string>",
"externalInvoiceReference": "<string>",
"commitmentId": "<string>",
"billLineItemId": "<string>"
},
"measures": {
"convertedSubtotal": 123,
"subtotal": 123,
"version": 123,
"conversionRate": 123,
"quantity": 123,
"units": 123
},
"billDetails": {
"day": 123,
"week": "<string>",
"year": 123,
"month": "<string>",
"locked": "<string>",
"status": "<string>",
"dueDate": "<string>",
"startDate": "<string>",
"endDate": "<string>",
"servicePeriodStartDate": "<string>",
"servicePeriodEndDate": "<string>",
"billDate": "<string>",
"timezone": "<string>",
"yearMonth": "<string>",
"billCurrency": "<string>",
"billingFrequency": "<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 Bill data query.
ISO 8601 formatted start date for the aggregation.
ISO 8601 formatted end date for the aggregation.
Line item types to query for.
Minimum array length:
1See Bill Line Item Types for more information.
Available options:
STANDING_CHARGE, USAGE, COUNTER_RUNNING_TOTAL_CHARGE, COUNTER_ADJUSTMENT_DEBIT, COUNTER_ADJUSTMENT_CREDIT, USAGE_CREDIT, MINIMUM_SPEND, MINIMUM_SPEND_REFUND, CREDIT_DEDUCTION, MANUAL_ADJUSTMENT, CREDIT_MEMO, DEBIT_MEMO, COMMITMENT_CONSUMED, COMMITMENT_FEE, OVERAGE_SURCHARGE, OVERAGE_USAGE, BALANCE_CONSUMED, BALANCE_FEE, AD_HOC 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. Valid dimensions include 'account' and 'product name'
Maximum array length:
100Show child attributes
Show child attributes
Limit the number of data points returned
Required range:
1 <= x <= 2000Response
Returns a list of bill line items.
Response containing bill line items.
A list of bill line items.
Show child attributes
Show child attributes
⌘I