Skip to main content

Install an SDK

Pick the SDK for your runtime. Each one sends events to the same ingest endpoint and evaluates feature flags locally from the same rules, so a user lands in the same rollout whichever you choose.

The key in these snippets comes from the console: Get an API key

At a glance

Packages
@prodantix/sdk (web), prodantix_sdk (Dart), prodantix_sdk_flutter (Flutter), prodantix-sdk (Python)
Ingest host
https://eu.api.prodantix.com
Flags host
https://api.prodantix.com
Credentials
Public project key in the client, access token for GraphQL
Verify
Read the event back from the events query

Browser and Node

Bash
bun add @prodantix/sdk

# React apps also take the adapter:
bun add @prodantix/react
JavaScript
import { createWebClient } from '@prodantix/sdk/web';

const prodantix = createWebClient({
  apiKey: PRODANTIX_PUBLIC_KEY,
  host: 'https://eu.api.prodantix.com',
  flagsHost: 'https://api.prodantix.com',
});

prodantix.capture('order.completed', { properties: { amount: 4200 } });
JavaScript
import { ProdantixProvider, useProdantix } from '@prodantix/react';

<ProdantixProvider options={{ apiKey: PRODANTIX_PUBLIC_KEY, host: 'https://eu.api.prodantix.com' }}>
  <App />
</ProdantixProvider>

const prodantix = useProdantix();
prodantix?.capture('order.completed');

Flutter and Dart

Bash
flutter pub add prodantix_sdk_flutter

# Dart server or CLI, without the Flutter layer:
dart pub add prodantix_sdk

Python server

Bash
pip install prodantix-sdk

Your project key is public: it names the project, it grants no access to its data, so it belongs in client code. A server key, which can write, never does.

Confirm it landed

Ingestion answers 202 as soon as the batch is accepted. To see the event itself, read it back from the events query, or watch it arrive on the realtime project room.

Bash
curl "https://api.prodantix.com/graphql" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"{ events(projectId: \"p_1\", limit: 5) { name receivedAt } }"}'