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.

SAP SuccessFactors – Open Content Network (OCN)

Integration via Open Content Network (OCN). This feature provides automated synchronization of courses from Seduo to your SAP SuccessFactors Learning (LMS) and completion status reporting back to SAP.

Result: Seduo courses appear in your SAP SF LMS catalog. Employees launch courses with SSO (no separate login), study on the Seduo platform, and completion results are written back to SAP SF automatically.

Integration Flow

  1. Content Sync: Seduo pushes course metadata daily to the SAP OCN API.
  2. Approval: SAP LMS admin reviews new courses in Content > Open Content Network and imports them into the catalog.
  3. Study: A user selects a course in SAP LMS and is redirected to Seduo via SSO to study the content.
  4. Completion Reporting: When the user completes a course, Seduo calls the SAP API and writes the completion status directly to the user's LMS record.

Customer-Side Requirements (SAP SF Configuration)

The following steps must be performed in SAP SuccessFactors Learning administration:

1. Enable OCN Provider

In System Configuration > OPEN_CONTENT_NETWORK add the Seduo provider definition:

providers[SEDUO].enabled=true providers[SEDUO].name=Seduo providers[SEDUO].label=label.u.Seduo

Create the corresponding label in References > Geography > Labels.

2. Create OCN Admin Account

Create a dedicated system user (OCN Admin) with a role that has permissions for Learning management and OCN imports.

3. Generate OAuth Client Secret

In System Administration > Configuration > OAuth Token Server (or via BizX), generate a Client Secret for the user above.

Configuration Data (Provide to Seduo)

Please securely share the following parameters from your SAP environment:

Parameter Description / Format
Client IDAPI Key from OAuth settings
Client SecretAuthentication secret key
Tenant IDYour tenant (Company ID, e.g. 111222333)
Admin IDSystem user ID (see step 2, e.g. CS_SEDUO)
SSO Token URLToken endpoint, typically: https://<dc>.successfactors.eu/learning/oauth-api/rest/v1/token
Completion Status URLCompletion endpoint, typically: https://<dc>.successfactors.eu/learning/odatav4/public/admin/ocn/v1/CompletionStatus

SSO Prerequisite

Important: OCN handles content and results transfer. For user authentication you must also configure SSO (SAML 2.0). OCN and SAML work in tandem.

SAP Documentation References

Degreed – Course Catalog Import (CSV / SFTP)

This integration provides automated upload of Seduo courses to the Degreed platform. It works via a regular CSV export of course metadata to an SFTP server from which Degreed fetches the data.

Full functionality requires additionally configured SSO (for login) and xAPI (for completion reporting).

Synchronization Flow

  1. Generate: Seduo generates a CSV export with the current course catalog (including new and updated courses).
  2. Transfer: Seduo uploads the file to an SFTP server (set up by the customer / Degreed).
  3. Import: Degreed automatically downloads and processes the file (typically once per day).
  4. Study: User clicks a course in Degreed → authenticated via SSO → starts studying on Seduo.
  5. Reporting: Completion results are sent back from Seduo to Degreed (or a connected LRS) via xAPI in real time.

Customer-Side Requirements (IT / Degreed Admin)

1. SFTP Access Setup

Degreed must create an SFTP account where Seduo will upload the CSV file. The following Seduo IP addresses must be whitelisted on port 22:

185.120.68.37/8 10.8.6.0/24 185.120.69.0/24 185.120.68.0/24 95.173.210.128/27 95.173.210.160/27 15.197.158.115 35.71.162.162

2. CSV Template Configuration in Degreed

Degreed must configure an import template matching the structure of the Seduo CSV file. The exported file contains the following columns:

Column Description Example Value
ContentTypeFixed valueCourse
ContentIDUnique Seduo course ID12345
URLDirect course link (with SSO auto-login parameter)https://www.seduo.cz/login?redirect=...
DeleteDeletion indicator (N = active, Y = removed)N
TitleCourse nameEfektivnĂ­ komunikace
SummaryCourse description / annotation—
ImageURLThumbnail image URLhttps://cdn.seduo.cz/...
DurationCourse length in hours (decimal)0.35583333
DurationUnitsFixed valueHours
LanguageLanguage codecs
FormatFixed valueOnline
Publish DatePublication date (ISO 8601)2015-06-05T20:18:36.000-04:00
OwnerLecturer names (comma-separated)John Doe, Jane Smith
AbilitiesSkills / tags (comma-separated)Communication, Leadership

Configuration Data (Provide to Seduo)

Please securely share the SFTP access credentials:
Parameter Description
SFTP HostServer address
SFTP PortTypically 22
SFTP UsernameUsername
SFTP PasswordPassword

Related Setup (Do Not Forget)

This integration covers course catalog only. For full functionality and seamless user experience, also implement:

  1. SSO (SAML 2.0): Required for URL links to work — users won't need to log in separately on Seduo.
  2. xAPI Reporting: Required to send course completion data back to Degreed. Degreed supports receiving completion status via xAPI.