Telemetry Data

If you have an open source offering with call home/telemetry functionality to collect anonymous usage or event data, you can use the Product Usage API to share the data with Reo.Dev

From the telemetry data, we should be able to get

  • IP address of the system

  • Unique user ID

  • Activity Details

From the telemetry data, we will be able to enrich the

  • IP address and find out the company to which the user belongs

  • With the unique user ID, we will aggregate the product usage at a developer level and ultimately map it to the company to which the user(s) are associated

Important Note: Telemetry Data functionality requires the configuration of relevant metrics in the Product Usage Settings. Without this setup, the data cannot be transmitted or processed in the Reo.Dev platform.

To ensure proper integration, follow the steps in How to Configure Product Usage Metrics in Settings before proceeding with telemetry data workflows.

API Structure

Header

Description

Data type

X-API-KEY

Generated Reo.Dev <API_KEY> for authorization.

string

Content-Type

Request content-type is always set to application/json.

string


curl --location 'https://ingest.reo.dev/api/product/usage' \
--header 'X-API-KEY: <API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "payload": {
				"activity_type" : "LOGIN_ACTIVITY",
				"source": "TELEMETRY",        
				"environment":"PRODUCTION",
        "user_id": "https://www.linkedin.com/in/userid",
        "user_id_type":"LINKEDIN",
        "ip_addr": "156.59.87.83",
        "event_id": 1231231232,  
        "event_at": 639303296,  
        "product_id": "reoWebApp",
        "user_agent": "Mozilla/5.0 (Macintosh, Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "meta": {"property1":"value1","property2":"value2"}
    }
}'

Tenant API Key

To access your API key, navigate to:

Settings → Integrations → API Keys → Product Usage API

  • Admins can generate and copy the key

  • Non-admin users can only view and copy the existing key


Parameter
Description
Datatype
Allowed Values
Example

source (Required)

Source of the activity.

enum

TELEMETRY, SAAS_PRODUCT

"TELEMETRY"

activity_type (Required)

Usage Metrics of the product. The definition of primary, secondary1 and secondary2 should match with metrics defined in the Reo.Dev settings. Where Source is Telemetry and you do not get any product usage data, activity type can be "CALL HOME"

string

Keys defined in metrics section in Reo.dev UI

"CALL HOME"

environment (optional)

Environment where product has been deployed.

string

"PRODUCTION"

user_id_type (optional)

Type of user ID such as email, Social, LinkedIn, GitHub, Username.

enum

EMAIL, SOCIAL, LINKEDIN, GITHUB, USERNAME

"EMAIL"

user_id (optional)

Unique user ID captured for a customer.

string

"https://github.com/michaelbevan"

ip_addr (mandatory)

IP address of the system from where the user has logged in.

string

"192.127.0.0"

event_id (mandatory)

A unique identifier for the event for Tenant for filter.

string

193ef456430

event_at (mandatory)

The time at which the event occurred (Formatted as a UNIX epoch in seconds).

integer

639303296

product_id (Required)

Unique identifier of your product.

string

"reoWebApp"

user_agent (optional)

Additional browser properties. This is optional if user_id is sent. In case user_id is not sent, user_agent becomes mandatory.

string

"Mozilla/5.0 (Macintosh, Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

meta (optional)

Any other parameter that needs to be sent.

object

Sample JSON Request

"payload": {
	"activity_type": "CALL_HOME",
	"source": "TELEMETRY",        
	"environment": "PRODUCTION",
        "user_id": "",
        "user_id_type":"",
        "ip_addr": "156.59.87.83",
        "event_id": "193ef456430",  
        "event_at": "639303296",  
        "product_id": "V1.2",
        "user_agent": "Mozilla/5.0 (Macintosh, Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "meta": {}
    }

Sample JSON Response [Success]

{
    "response_code": "200",
    "response": "Data Uploaded",
    "status": "success"
}

Sample JSON Response [Wrong API Key]

{
    "response_code": 400,
    "response": "Authentication Failure",
    "status": "failure"
}

Last updated

Was this helpful?