Record Events
Intent
Runs the record events action.
When to call it
Call this when your workflow reaches the point where it must record events.
Access boundary
Authorize the request with a token that carries events:write.
Successful result
A successful request returns 200. The response schema below defines the body your integration receives.
Operational notes
Ingest batch of events.
POST
/
v1
/
events
/
ingest
Record Events
curl --request POST \
--url https://api.getruba.com/v1/events/ingest \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
{
"name": "<string>",
"customer_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
"external_id": "<string>",
"parent_id": "<string>",
"metadata": {},
"member_id": "<string>"
}
]
}
'import requests
url = "https://api.getruba.com/v1/events/ingest"
payload = { "events": [
{
"name": "<string>",
"customer_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
"external_id": "<string>",
"parent_id": "<string>",
"metadata": {},
"member_id": "<string>"
}
] }
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({
events: [
{
name: '<string>',
customer_id: '<string>',
timestamp: '2023-11-07T05:31:56Z',
organization_id: '1dbfc517-0bbf-4301-9ba8-555ca42b9737',
external_id: '<string>',
parent_id: '<string>',
metadata: {},
member_id: '<string>'
}
]
})
};
fetch('https://api.getruba.com/v1/events/ingest', 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.getruba.com/v1/events/ingest",
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([
'events' => [
[
'name' => '<string>',
'customer_id' => '<string>',
'timestamp' => '2023-11-07T05:31:56Z',
'organization_id' => '1dbfc517-0bbf-4301-9ba8-555ca42b9737',
'external_id' => '<string>',
'parent_id' => '<string>',
'metadata' => [
],
'member_id' => '<string>'
]
]
]),
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.getruba.com/v1/events/ingest"
payload := strings.NewReader("{\n \"events\": [\n {\n \"name\": \"<string>\",\n \"customer_id\": \"<string>\",\n \"timestamp\": \"2023-11-07T05:31:56Z\",\n \"organization_id\": \"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n \"external_id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"metadata\": {},\n \"member_id\": \"<string>\"\n }\n ]\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.getruba.com/v1/events/ingest")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"events\": [\n {\n \"name\": \"<string>\",\n \"customer_id\": \"<string>\",\n \"timestamp\": \"2023-11-07T05:31:56Z\",\n \"organization_id\": \"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n \"external_id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"metadata\": {},\n \"member_id\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/events/ingest")
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 \"events\": [\n {\n \"name\": \"<string>\",\n \"customer_id\": \"<string>\",\n \"timestamp\": \"2023-11-07T05:31:56Z\",\n \"organization_id\": \"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n \"external_id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"metadata\": {},\n \"member_id\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"inserted": 123,
"duplicates": 0
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
patoat
Body
application/json
Collection of events to ingest.
- EventCreateCustomer
- EventCreateExternalCustomer
Show child attributes
Show child attributes
Previous
Read Meter### Intent
Reads the meter without changing it.
### When to call it
Call this after your application has received or stored the identifier for the meter.
### Access boundary
Authorize the request with a token that carries `meters:read` or `meters:write`.
### Successful result
A successful request returns `200`. The response schema below defines the body your integration receives.
Next
⌘I
Record Events
curl --request POST \
--url https://api.getruba.com/v1/events/ingest \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
{
"name": "<string>",
"customer_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
"external_id": "<string>",
"parent_id": "<string>",
"metadata": {},
"member_id": "<string>"
}
]
}
'import requests
url = "https://api.getruba.com/v1/events/ingest"
payload = { "events": [
{
"name": "<string>",
"customer_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"organization_id": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
"external_id": "<string>",
"parent_id": "<string>",
"metadata": {},
"member_id": "<string>"
}
] }
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({
events: [
{
name: '<string>',
customer_id: '<string>',
timestamp: '2023-11-07T05:31:56Z',
organization_id: '1dbfc517-0bbf-4301-9ba8-555ca42b9737',
external_id: '<string>',
parent_id: '<string>',
metadata: {},
member_id: '<string>'
}
]
})
};
fetch('https://api.getruba.com/v1/events/ingest', 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.getruba.com/v1/events/ingest",
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([
'events' => [
[
'name' => '<string>',
'customer_id' => '<string>',
'timestamp' => '2023-11-07T05:31:56Z',
'organization_id' => '1dbfc517-0bbf-4301-9ba8-555ca42b9737',
'external_id' => '<string>',
'parent_id' => '<string>',
'metadata' => [
],
'member_id' => '<string>'
]
]
]),
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.getruba.com/v1/events/ingest"
payload := strings.NewReader("{\n \"events\": [\n {\n \"name\": \"<string>\",\n \"customer_id\": \"<string>\",\n \"timestamp\": \"2023-11-07T05:31:56Z\",\n \"organization_id\": \"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n \"external_id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"metadata\": {},\n \"member_id\": \"<string>\"\n }\n ]\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.getruba.com/v1/events/ingest")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"events\": [\n {\n \"name\": \"<string>\",\n \"customer_id\": \"<string>\",\n \"timestamp\": \"2023-11-07T05:31:56Z\",\n \"organization_id\": \"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n \"external_id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"metadata\": {},\n \"member_id\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/events/ingest")
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 \"events\": [\n {\n \"name\": \"<string>\",\n \"customer_id\": \"<string>\",\n \"timestamp\": \"2023-11-07T05:31:56Z\",\n \"organization_id\": \"1dbfc517-0bbf-4301-9ba8-555ca42b9737\",\n \"external_id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"metadata\": {},\n \"member_id\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"inserted": 123,
"duplicates": 0
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}