Introduction

The Eventador API designed around representational state transfer (REST). It has simple resource-oriented URLs, accepts form-encoded request bodies, returns JSON responses. It uses standard HTTP response codes, authentication, and verbs.

Authentication

Access is deny by default and access is granted to resources via API_KEY. API_KEYs are generated with a cluster-wide scope. Users must be authenticated into the Eventador Console and have the proper teams privileges to create API_KEYs and can be revoked at any time.

  • You can create, view, and otherwise manage API_KEYs via the Eventador Console. Log in to the Eventador Console, and select Security on the left hand pane to manage API_KEYs.

All API requests must be made over HTTPS.

API endpoint (Base URL)

You can get the API endpoint and enable API key access by:

  • Select Clusters in the left hand pane.
  • Select Manage API Keys for the cluster you want to connect to.
  • Select Add API Key and Apply to add (or create) an API key for use with this endpoint.
  • Copy Base URL for use in your API calls.

Resources

Data API

The Eventaor Platform has built in Kafka topics for use in examples, tutorials, or testing. You can manage topics, and produce data to the topics for use in SQLStreamBuilder.

Kafka Topic: list

GET /kafka/topic/list

curl example:

curl -X GET ${BASE_URL}/kafka/topic/list?key=${API_KEY}

Kafka Topic: list offsets

GET /kafka/topic/<topic>/offsets

curl example:

curl -X GET ${BASE_URL}/kafka/topic/${TOPIC}/offsets?key=${API_KEY}

Kafka Topic: create

POST /kafka/topic/create

curl example:

curl -X POST ${BASE_URL}/kafka/topic/create?key=${API_KEY} \
     -H 'Content-Type: application/json' \
     -d '{ "topic":"topic_name", "partitions": 3,"replicas":1 }'

Kafka Topic: produce

POST /kafka/topic/<topic>/send

When producing a partition will be auto-assigned:

curl example:

curl -X POST ${BASE_URL}/kafka/topic/${TOPIC}/send?key=${API_KEY} \
     -H 'Content-Type: application/json' \
     -d '{"records": [ {"key": "somekey", "value": "someValue" } ] }'

You can produce to a specific partition:

curl example:

curl -X POST ${BASE_URL}/kafka/topic/${TOPIC}/partition/${PARTITION_NO}/send?key=${API_KEY} \
     -H 'Content-Type: application/json' \
     -d '{"records": [ {"key": "somekey", "value": "someValue" } ] }'

Kafka Topic: delete

DELETE /kafka/topic/<topic>/delete

curl example:

curl -x DELETE ${BASE_URL}/kafka/topic/${TOPIC}/delete?key=${API_KEY}