Authentication

All API requests require authentication via Bearer tokens. API access is provided on a per-client basis through a sales-based onboarding process.

Requesting API access

To request API credentials:

  1. Contact our sales team at sales@stekker.com
  2. Describe your use case and which API endpoints you need access to
  3. Our team will provision platform credentials for your organization
  4. You'll receive API tokens for both staging and production environments

API access is typically configured for specific backend types (e.g., price_forecast for market price APIs) based on your requirements.

Using authentication tokens

All data is sent via REST calls over HTTPS. Stekker provides a separate staging environment to test integration. All API requests must include an Authorization: header. The content type of payloads is application/json.

The requests and responses described in the following chapters are examples. Whenever possible, these are based on existing messages from OCPI and OCPP (hence the mix of camelCase and snake_case). Parts of these can be adjusted if it simplifies the implementation on the CSMS side, for example, the naming of the fields.

POST/api/v1/events

Example

Example request with auth

curl --location --request POST 'https://api.stekker.app/api/v1/events' \
--header 'Authorization: Token provided-secret' \
--header 'Content-Type: application/json' \
--data-raw '{
    "notification": "OcppEvent",
    "protocol": "1.6",
    "chargePointId": "61409f9bad616b6c64c31704",
    "evseId": "NLEFLEV5496770",
    "ocppIdentity": "LIB_6513",
    "event": {
        "method": "MeterValues",
        "params": {
            "connectorId": 1951562,
            "transactionId": 123885164,
            "meterValue": [
                {
                    "timestamp": "2022-03-31T13:47:30Z",
                    "sampledValue": [
                        {
                            "value": "589570"
                        }
                    ]
                }
            ]
        },
        "response": {}
    }
}'