Skip to main content

Developer Overview

Welcome to the Joryio developer documentation. This guide will help you integrate Joryio into your applications.

What Can You Build?

With Joryio's developer platform, you can:

  • Track user behavior across web, iOS, and Android
  • Manage user profiles and attributes programmatically
  • Send custom events to power segmentation and analytics
  • Integrate with webhooks for real-time event notifications
  • Trigger campaigns via API
  • Query analytics data for custom dashboards

Platform Architecture

Data in
Your appsSDK keys
Web · iOS · Android · React Native
Your backendAPI keys
REST API
Store platforms
Shopify · WooCommerce · Magento
Bulk import
CSV · JSON
Warehouse sync
Snowflake · BigQuery
Joryio platform
Joryio
Profiles & events
Segments
Journeys (Canvas)
Campaigns
Analytics & ML
Data out
Messages
Email · SMS · WhatsApp · Push · In-app · Wallet
Webhooks
journey nodes & event streams
Data streaming
Snowflake · BigQuery · Redshift · S3 · Kafka · Mixpanel · Amplitude

One track() call powers every surface — a Kafka-based streaming spine fans events out in real time.

Events fan out to analytics, audience targeting, ML reward signals, and journey trigger evaluation the moment they arrive. The same spine feeds Data Streaming, which delivers your events onward to your own warehouse, storage, or analytics stack, and Warehouse sync brings your existing data in.

Authentication

Joryio uses two types of authentication:

SDK Keys (Client-Side)

For tracking from web and mobile apps:

jry_sdk_web_abc123...     (Web SDK)
jry_sdk_ios_def456... (iOS SDK)
jry_sdk_android_ghi789... (Android SDK)

Security: Safe to include in client-side code. Limited to tracking operations only.

API Keys (Server-Side)

For server-to-server API calls:

jry_live_xyz789... (Production)
jry_test_abc123... (Testing)

Security: Must be kept secret. Never expose in client-side code. Full access to all API operations.

Keep API Keys Secret

Never commit API keys to version control or expose them in client-side code. Use environment variables.

Quick Integration

1. Web Tracking

import JoryioSDK from '@joryio/web-sdk';

const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_your_key_here'
});

// Identify user
joryio.identify('user_123');
joryio.setAttributes({
email: 'user@example.com',
plan: 'premium',
});

// Track event
joryio.track('Button Clicked', {
button: 'signup',
page: 'homepage'
});

2. Server-Side API

const response = await fetch('https://api-eu1.joryio.com/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer jry_live_your_api_key_here'
},
body: JSON.stringify({
userId: 'user_123',
email: 'user@example.com',
attributes: {
plan: 'premium',
signupDate: '2024-01-15'
}
})
});

SDKs & Libraries

Official SDKs

PlatformStatusDocumentation
Web (JavaScript)AvailableWeb SDK Guide
iOS (Swift)AvailableiOS SDK Guide
Android (Kotlin)AvailableAndroid SDK Guide
React NativeAvailableReact Native SDK Guide

REST API

Full REST API for all operations:

  • API Reference
  • Base URL: https://api-eu1.joryio.com
  • Format: JSON
  • Authentication: bearer API key (Authorization: Bearer jry_live_...)

Core Concepts

Each concept has its own guide - this page stays a map:

  • Apps - one per platform, each with its own SDK key.
  • Users - profiles, attributes, aliases, and the create/update API.
  • Events - naming conventions, properties, identify vs track, and debugging.
  • Segments - dynamic user groups over attributes and behavior.

Development Workflow

1. Development Environment

# Use test API keys
export JORYIO_API_KEY=jry_test_abc123...

Enable debug mode in the Web SDK:

const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_test_...',
enableDebug: true
});

2. Testing

  • Use test API keys for development
  • Create test segments and campaigns
  • Verify events in dashboard
  • Test webhook endpoints locally (use ngrok)

3. Production Deployment

  • Switch to production API keys
  • Disable debug mode
  • Monitor error rates
  • Set up webhooks for critical events

Rate Limits & Errors

Rate-limit behavior (429 + Retry-After), the standard error body, and status codes are documented once, in the API Overview: Rate Limiting · HTTP Status Codes.

Getting Events Out

To receive Joryio events on your own endpoint in real time, add a Webhook destination in Data Streaming - every event is POSTed as JSON to your HTTPS URL. Journeys can also call your systems per-contact with the Webhook node, and failed webhook deliveries can be inspected and retried in Settings → Logs & Monitoring (Webhook retries).

Best Practices

Support & Resources

Next Steps

  1. Integrate the Web SDK
  2. Set up user tracking
  3. Create your first segment
  4. Send a campaign