Seduo Company API Documentation

API for accessing Seduo course catalog for integration with third-party systems (e.g., LMS like SAP SuccessFactors)

Overview

The Seduo Company API provides access to course catalogs for companies with valid contracts. The API is designed for external integration with LMS systems like SAP SuccessFactors and provides complete course information including metadata.

Important: This API is available only for companies with valid contracts and configured authorization tokens in administration.

Key Features

Authentication

The API uses Bearer token authentication. You must include a valid authorization token in the request header.

Requirements

Header Format

Authorization: Bearer <your-token-here>
Security Note: Keep your authorization token secure and do not share it publicly.

API Endpoints

GET/api/resources/courses/{format}

Get catalog of standard courses available for the company.

GET/api/resources/microlearning/{format}

Get catalog of microlearning courses available for the company.

Parameters

Parameter Type Required Description Values
format Path Yes Response format xml, json
Authorization Header Yes Bearer token for authentication Bearer <token>

Response Codes

Code Status Description
200 Success Successful result - structured list of resources
400 Bad Request Invalid format parameter
401 Unauthorized Missing or invalid Bearer token
429 Too Many Requests Rate limit exceeded (10/min or 100/hour)
500 Server Error Internal server error

Data Structure

Response Structure

The API returns a structured response containing metadata and course resources.

Metadata

Field Type Description
generated_at string (datetime) Timestamp when the catalog was generated
company_name string Name of the company
domain string Domain from which the API request was made
course_type string Type of courses in this catalog (standard, microlearning)
total_courses integer Total number of courses in the catalog

Course Resource Fields

Field Type Description
course_id integer Unique course identifier
course_name string Course title
course_url string (uri) URL to access the course (may require login)
lecturers array List of course lecturers
categories array List of course categories
abilities array List of skills/abilities taught
series array List of series this course belongs to (empty array if course is not part of any series)
course_duration integer Course duration in minutes (rounded up)
image_url string (uri) URL to course thumbnail image
video_url string (uri) Direct URL to video stream (m3u8 format) or empty string if video is not available
claim string Short course description or tagline
course_description string Detailed course description
video_language string Language code of the course video
last_update string (datetime) Timestamp when the course was last updated
is_hidden boolean Whether the course is hidden from public view

Examples

Request Examples

Standard Courses

GET /api/resources/courses/json HTTP/1.1 Host: www.seduo.cz Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Microlearning Courses

GET /api/resources/microlearning/xml HTTP/1.1 Host: www.seduo.cz Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

JSON Response Example

{   "generated_at""2023-12-31T23:00:00+00:00",   "company_name""ACME Corporation",   "domain""www.seduo.cz",   "course_type""standard",   "total_courses"2,   "courses": [     {       "course_id"123,       "course_name""Introduction to Project Management",       "course_url""https://www.seduo.cz/login?redirect=https://www.seduo.cz/course/project-management",       "lecturers": ["John Doe", "Jane Smith"],       "categories": ["Management", "Leadership"],       "abilities": ["Project Planning", "Team Management"],       "series": ["Management Fundamentals"],       "course_duration"150,       "image_url""https://cdn.seduo.cz/images/courses/project-management.jpg",       "video_url""https://video.seduo.cz/hls/course123/playlist.m3u8",       "claim""Learn essential project management skills",       "course_description""This comprehensive course covers all aspects of project management...",       "video_language""cs",       "last_update""2023-12-31T23:00:00+00:00",       "is_hidden"false     },     {       "course_id"124,       "course_name""Advanced Excel Techniques",       "course_url""https://www.seduo.cz/login?redirect=https://www.seduo.cz/course/excel-advanced",       "lecturers": ["Alice Johnson"],       "categories": ["IT", "Office Skills"],       "abilities": ["Excel", "Data Analysis"],       "course_duration"105,       "image_url""https://cdn.seduo.cz/images/courses/excel-advanced.jpg",       "video_url""video124",       "claim""Master advanced Excel features",       "course_description""Learn advanced Excel techniques for data analysis and reporting...",       "video_language""cs",       "last_update""2023-12-30T15:30:00+00:00",       "is_hidden"false     }   ] }

XML Response Example

<?xml version="1.0" encoding="UTF-8"?> <catalog>   <metadata>     <generated_at>2023-12-31T23:00:00+00:00</generated_at>     <company_name>ACME Corporation</company_name>     <domain>www.seduo.cz</domain>     <course_type>standard</course_type>     <total_courses>1</total_courses>   </metadata>   <courses>     <course>       <course_id>123</course_id>       <course_name>Introduction to Project Management</course_name>       <course_url>https://www.seduo.cz/login?redirect=https://www.seduo.cz/course/project-management</course_url>       <lecturers>         <lecturer>John Doe</lecturer>         <lecturer>Jane Smith</lecturer>       </lecturers>       <categories>         <category>Management</category>         <category>Leadership</category>       </categories>       <abilities>         <ability>Project Planning</ability>         <ability>Team Management</ability>       </abilities>       <series>         <serie>Management Fundamentals</serie>       </series>       <course_duration>150</course_duration>       <image_url>https://cdn.seduo.cz/images/courses/project-management.jpg</image_url>       <video_url>https://video.seduo.cz/hls/course123/playlist.m3u8</video_url>       <claim>Learn essential project management skills</claim>       <course_description>This comprehensive course covers all aspects of project management...</course_description>       <video_language>cs</video_language>       <last_update>2023-12-31T23:00:00+00:00</last_update>       <is_hidden>false</is_hidden>     </course>   </courses> </catalog>

Error Codes

The API returns standard HTTP status codes along with descriptive error messages.

Error Response Format

{   "error""Error type",   "message""Human-readable error message" }

Common Error Scenarios

400 Bad Request

{   "error""Unsupported format",   "message""Format \"txt\" is not supported. Supported formats: json, xml" }

401 Unauthorized

{   "error""Authentication failed",   "message""Invalid API token" }

429 Too Many Requests

{   "error""Rate limit exceeded",   "message""Rate limit exceeded: Too many requests per minute. Please try again later." }

500 Internal Server Error

{   "error""Internal server error",   "message""Unable to generate catalog" }

Rate Limiting

The API implements rate limiting to ensure fair usage and system stability.

Limits

Window Limit Scope Type
1 minute 10 requests Company + IP Fixed window
1 hour 100 requests Company + IP Sliding window

Rate Limit Headers

All responses include rate limit information in headers:

Rate Limit Exceeded

When rate limit is exceeded, the API returns HTTP 429 with a Retry-After header indicating when to retry.

Downloads

Download the API documentation in various formats for integration with your tools.

Integration Tools

Swagger UI

View and test the API in Swagger UI:

  1. Open https://editor.swagger.io/
  2. Import the YAML or JSON file
  3. Browse the documentation and test the API

Postman

Import into Postman for testing:

  1. Download the JSON file
  2. Open Postman and click "Import"
  3. Select the downloaded JSON file
  4. Configure Bearer token in Authorization tab
  5. Test the endpoint with different formats

Code Generation

Generate client libraries using tools like:

SSO (Single Sign-On)

Companies with landing pages can configure different authentication methods for their users. This affects how employees access courses through the company portal.

Configuration: Authentication methods are configured in the company administration interface.

Authentication Types

Three authentication methods are available for companies:

1. Basic Authentication

Default Basic Login

Standard email and password authentication. This is the default method when no specific authentication type is configured.

2. Two-Factor Authentication (2FA Email)

Enhanced 2FA Email

Email-based two-factor authentication adds an extra security layer by sending verification codes to user's email.

3. Single Sign-On (SSO Azure)

Enterprise SSO Azure (SAML2)

Enterprise-grade Single Sign-On integration with Azure Active Directory using SAML2 protocol.

SAML2 Configuration

For companies using SSO Azure authentication, the following SAML2 configuration is required:

Required Configuration Parameters

Parameter Description Example Required
ssoIdpUrl Azure AD Identity Provider URL https://login.microsoftonline.com/{tenant-id}/saml2 Yes
ssoEmailAttribute SAML attribute containing user email http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress Yes
ssoNameAttribute SAML attribute containing user first name http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname Optional
ssoSurnameAttribute SAML attribute containing user surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname Optional

SAML2 Metadata

Each company with SSO authentication has its own SAML2 metadata endpoint:

GET /company/{company-slug}/saml2/metadata

This endpoint provides the Service Provider (SP) metadata that needs to be configured in Azure AD.

SAML2 Metadata Example

Example of SAML2 Service Provider metadata for company SSO configuration:

<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"                      entityID="https://www.seduo.cz/company/example-company/saml2/metadata">   <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"                       AuthnRequestsSigned="false"                       WantAssertionsSigned="false">     <md:KeyDescriptor use="signing">       <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">         <ds:KeyInfo>             <ds:X509Data>                 <ds:X509Certificate>MIICertificateDataHere...</ds:X509Certificate>             </ds:X509Data>         </ds:KeyInfo>     </md:KeyDescriptor>     <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"                             Location="https://www.seduo.cz/company/example-company/logout" />     <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>     <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"                                 Location="https://www.seduo.cz/company/example-company/login_check"                                 index="1" />   </md:SPSSODescriptor> </md:EntityDescriptor>

SAML2 Authentication Request Example

When redirecting to Azure AD, the system generates a SAML AuthnRequest:

POST https://login.microsoftonline.com/{tenant-id}/saml2 HTTP/1.1 Content-Type: application/x-www-form-urlencoded SAMLRequest=PHNhbWxwOkF1dGhuUmVxdWVzdCB4bWxuczpzYW1scD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIi4uLg==

Azure AD Configuration

To configure Azure AD for SAML2 SSO with seduo.cz:

  1. Create Enterprise Application: Add new enterprise application in Azure AD
  2. Configure SAML: Set up SAML-based sign-on
  3. Set Identifier: Use company's metadata URL as identifier
  4. Set Reply URL: Use company's login_check URL
  5. Configure Claims: Map user attributes to SAML claims
  6. Assign Users: Assign company users to the application

Required Azure AD Claims Mapping

Claim Name Source Attribute Purpose
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress user.mail User identification and login
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname user.givenname User first name (optional)
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname user.surname User last name (optional)

SAML2 Authentication Flow

  1. User Access: User visits company landing page
  2. SSO Redirect: System detects SSO configuration and redirects to Azure AD
  3. Azure Authentication: User authenticates with Azure AD credentials
  4. SAML Response: Azure AD sends SAML response with user attributes
  5. User Verification: System verifies user exists in company or initiates registration
  6. Login Complete: User is logged in and redirected to courses

Company Landing Page Requirements

Prerequisites: To use any authentication method, companies must have:
  • Active contract with seduo.cz
  • Configured company landing page
  • Valid authorization token for API access

Landing Page URL Structure

https://www.seduo.cz/company/{company-slug}

Where {company-slug} is the unique identifier for the company's landing page.

User Registration Flow

When users don't exist in the system, different registration flows are available:

xAPI Integration

The Resources API integrates with the Experience API (xAPI) standard to track learning activities and generate standardized learning statements when students complete courses.

xAPI Standard: The Experience API (xAPI) is a specification for learning technology that makes it possible to collect data about the wide range of experiences a person has (online and offline).

How xAPI Works with Resources API

When a student completes a course obtained through the Resources API, the system automatically generates xAPI statements that conform to the xAPI specification. These statements provide detailed information about the learning experience.

xAPI Statement Structure

Each xAPI statement follows the pattern: Actor + Verb + Object + Result

Course Completion Statement Example

Here's an example of an xAPI statement generated when a student completes a course:

{   "id""12345678-1234-5678-1234-123456789012",   "timestamp""2024-01-15T14:30:00.000Z",   "actor": {     "name""John Smith",     "mbox""mailto:john.smith@company.com",     "objectType""Agent"   },   "verb": {     "id""http://adlnet.gov/expapi/verbs/completed",     "display": {       "en-US""completed",       "cs""dokončil"     }   },   "object": {     "id""https://www.seduo.cz/courses/1234",     "definition": {       "name": {         "en-US""Effective Communication",         "cs""Efektivní komunikace"       },       "description": {         "en-US""Learn essential communication skills for professional success",         "cs""Naučte se základní komunikační dovednosti pro profesní úspěch"       },       "type""http://adlnet.gov/expapi/activities/course",       "extensions": {         "https://www.seduo.cz/xapi/extensions/course-id"1234,         "https://www.seduo.cz/xapi/extensions/resource-type""standard",         "https://www.seduo.cz/xapi/extensions/duration"120,         "https://www.seduo.cz/xapi/extensions/categories": [           "Communication",           "Soft Skills"         ],         "https://www.seduo.cz/xapi/extensions/abilities": [           "Active Listening",           "Public Speaking"         ],         "https://www.seduo.cz/xapi/extensions/lecturers": [           "John Smith",           "Jane Doe"         ]       }     },     "objectType""Activity"   },   "result": {     "completion"true,     "success"true,     "score": {       "scaled"0.85,       "raw"85,       "min"0,       "max"100     },     "duration""PT1H45M30S",     "extensions": {       "https://www.seduo.cz/xapi/extensions/completion-date""2024-01-15T14:30:00.000Z",       "https://www.seduo.cz/xapi/extensions/attempts"1,       "https://www.seduo.cz/xapi/extensions/time-spent""PT1H45M30S"     }   },   "context": {     "platform""seduo.cz",     "language""cs",     "extensions": {       "https://www.seduo.cz/xapi/extensions/company-domain""www.seduo.cz",       "https://www.seduo.cz/xapi/extensions/learning-path""Professional Development"     }   } }

xAPI Statement Components

Component Description Example Value
Actor The learner who performed the activity John Smith (john.smith@company.com)
Verb The action that was performed completed, experienced, passed, failed
Object The activity that was performed on Course: "Effective Communication"
Result The outcome of the activity Score: 85%, Duration: 1h 45m, Success: true
Context Additional context information Platform: seduo.cz, Language: cs

Supported xAPI Verbs

The system supports various xAPI verbs depending on the learning activity:

xAPI Extensions

Seduo.cz uses custom xAPI extensions to provide additional course-specific data:

Extension Description Data Type
course-id Unique course identifier from Resources API integer
resource-type Type of resource (standard, microlearning) string
duration Expected course duration in minutes integer
categories Course categories from Resources API array
abilities Skills/abilities from Resources API array
lecturers Course lecturers from Resources API array
company-domain Company's seduo.cz domain string

Integration Benefits

Learn More: For detailed information about the xAPI standard, visit xapi.com or the official xAPI specification.