Skip to main content
Unlock your potential with 20% off all Premium Courses. Claim offer
REST API

API Documentation for B2B Integrations

Integrate Talktiko into your systems with our REST API. Manage content, track progress, receive webhooks, connect to your LMS, and provision institutional accounts — all programmatically.

Quick Start

1

Create an API Token

Navigate to Settings → Integrations → API Tokens in the admin dashboard. Create a named token with the abilities your integration needs.

# Token is shown once at creation — copy and store securely
curl -X POST https://api.talktiko.com/api/auth/sign-in \
-H "Content-Type: application/json" \
-d '{"email":"…","password":"…"}'
2

Authenticate Requests

Include the token as a Bearer token in the Authorization header.

curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
https://api.talktiko.com/api/courses
3

Handle Responses

All endpoints return JSON. Paginated resources include data, links, and meta keys.

{
"data": [...],
"links": { "next": "...?page=2" },
"meta": { "total": 42, "per_page": 15 }
}

Endpoint Reference

Authentication

Manage API tokens with scoped abilities via Laravel Sanctum.

POST
/api/auth/sign-in

Authenticate and receive a bearer token

GET
/api/auth/me

Get the authenticated user profile

GET
/api/integrations/tokens

List all API tokens

POST
/api/integrations/tokens

Create a scoped API token with named abilities

DELETE
/api/integrations/tokens/{token}

Revoke an API token

Courses & Content

Browse and manage courses, lessons, trainings, and training items.

GET
/api/public/courses

List all published courses (no auth required)

GET
/api/public/courses/{slug}

Get course details by slug (no auth required)

GET
/api/courses

List courses with filtering and pagination

GET
/api/courses/{id}

Get full course details

GET
/api/lessons

List lessons with optional course filter

GET
/api/trainings

List training blocks

GET
/api/trainingItems

List training items with type filtering

Learner Progress

Track learner activity, completion, and CEFR progress.

GET
/api/stats

Platform-wide statistics

GET
/api/courses/{course}/lesson-progress

Per-lesson progress for a course

GET
/api/progress-history

Historical progress data

GET
/api/cefr/report

CEFR skill-level report for authenticated user

GET
/api/learning-insights

Personalized learning analytics

GET
/api/gamification/stats

Streaks, XP, and achievement data

GET
/api/gamification/leaderboard

Platform leaderboard

Webhooks

Receive real-time event notifications with HMAC-SHA256 signed payloads.

GET
/api/integrations/webhooks

List configured webhooks

POST
/api/integrations/webhooks

Create a webhook with event subscriptions

PUT
/api/integrations/webhooks/{id}

Update webhook URL or events

DELETE
/api/integrations/webhooks/{id}

Delete a webhook

POST
/api/integrations/webhooks/{id}/test

Send a test ping

GET
/api/integrations/webhooks/{id}/deliveries

View delivery history and status

Data Exports

Generate and download CSV exports asynchronously.

GET
/api/integrations/exports

List export jobs and their status

POST
/api/integrations/exports

Request a new data export (learner progress, completions, activity)

GET
/api/integrations/exports/{id}

Check export status

GET
/api/integrations/exports/{id}/download

Download completed CSV export

LTI 1.3 (LMS Integration)

Single sign-on course launches from Canvas, Blackboard, and Moodle.

GET
/api/integrations/lti-consumers

List LTI consumer registrations

POST
/api/integrations/lti-consumers

Register an LTI consumer

GET
/api/lti/login

OIDC login initiation endpoint

POST
/api/lti/callback

LTI launch callback

POST
/api/lti/grade-passback/{launch}

Push grade back to LMS

xAPI Forwarding

Forward learning activity as xAPI statements to your Learning Record Store.

GET
/api/integrations/xapi-endpoints

List xAPI endpoint configurations

POST
/api/integrations/xapi-endpoints

Register an xAPI LRS endpoint

PUT
/api/integrations/xapi-endpoints/{id}

Update endpoint credentials

DELETE
/api/integrations/xapi-endpoints/{id}

Remove an xAPI endpoint

Institutions (B2B)

Manage institutional accounts, members, billing, SSO, and analytics.

GET
/api/institutions

List institutions

POST
/api/institutions

Create an institution

GET
/api/institutions/{id}/members

List institution members

POST
/api/institutions/{id}/members/bulk

Bulk provision members via CSV

GET
/api/institutions/{id}/analytics

White-label analytics dashboard data

GET
/api/institutions/{id}/sso

SSO configuration (SAML/OIDC)

PUT
/api/institutions/{id}/sso

Update SSO settings

GET
/api/institutions/{id}/compliance

Compliance documentation status

Billing & Subscriptions

Manage checkout sessions, subscriptions, and billing portal.

GET
/api/subscription-plans

List available subscription plans

POST
/api/billing/checkout-session

Create a Stripe checkout session

POST
/api/billing/portal-session

Create a billing portal session

POST
/api/billing/apply-promo

Validate and apply a promo code

GET
/api/trial/status

Check free trial status

Rate Limiting

API requests are rate-limited per token to ensure fair usage and platform stability.

Exceeded requests return HTTP 429 with a Retry-After header.

Free
100
requests / min
Pro
1,000
requests / min
Enterprise
Custom
requests / min

Webhook Security

Every webhook delivery includes an X-Signature-256 header containing an HMAC-SHA256 hash of the request body signed with your webhook secret.

# Verify in your webhook handler
$signature = hash_hmac('sha256', $requestBody, $webhookSecret);
$isValid = hash_equals($signature, $headerSignature);

Payloads are retried up to 3 times with exponential backoff on failure

Delivery logs are available via API and in the admin dashboard

Test pings verify endpoint connectivity before subscribing to events

Ready to integrate?

Create an account, generate an API token, and start building your integration in minutes. Enterprise plans include dedicated integration support.