Skip to content
DOJO Future

Integrations

Keep what works. Sync in the rest.

DOJO's Integration API lets you send data in from the systems you already have, such as a student information system, a learning platform or your school's own website. So you can choose one module at a time without entering the same data twice.

  • Fortnox
  • Visma
  • Ladok & MYH Mina sidor
  • Microsoft 365 / Entra ID
  • Google Workspace
  • itslearning
  • Canvas
  • Your website
  • DOJO

Integrations we deliver

Connected to the systems you already use

On top of the Integration API, we build and deliver integrations with common Swedish systems. They're set up for your school as part of onboarding.

Finance and accounting

  • FortnoxWe deliver

    Salaries and costs booked straight into Fortnox, with no file in between.

  • VismaWe deliver

    Accounting data from DOJO straight into Visma.

Reporting

  • Ladok & MYH Mina sidorWe deliver

    Students and study results to Ladok and MYH's Mina sidor.

Sign-in and calendar

  • Microsoft 365 / Entra IDWe deliver

    Sign in with the school's Microsoft account, with meetings in Outlook and Teams.

  • Google WorkspaceWe deliver

    Sign in with the school's Google account, with meetings in Google Calendar.

Learning platforms

  • itslearningWe deliver

    Courses, students and grades synced with itslearning.

  • CanvasWe deliver

    Courses, students and grades synced with Canvas.

Another system?

We build custom integrations with whatever you use: finance, HR, a school portal or something else entirely. Tell us what you have, and we'll take it from there.

Talk to us about integration

Delivered integrations are set up and adapted for each school. Scope and price are part of the quote.

Nine datasets

Each dataset is received by the module that owns the data. Synced data is marked with its source, so you can always see where it came from.

Table of the Integration API datasets
DatasetEndpointScopeUsed by
ProgrammesPOST /integration/programsprograms:writeFoundation
CoursesPOST /integration/coursescourses:writeFoundation
CohortsPOST /integration/cohortscohorts:writeFoundation
StudentsPOST /integration/studentsstudents:writeFoundation
TeachersPOST /integration/teachersteachers:writeFoundation
GradesPOST /integration/gradesgrades:writeLearning
LIA placementsPOST /integration/lia-placementslia:writeCompany & LIA
ApplicationsPOST /integration/applicationsapplications:writeAdmin & Compliance
LeadsPOST /integration/prospectsprospects:writeAdmin & Compliance

Built to be safe to integrate with

  • Your own keys

    A superadmin creates the keys. The secret is shown once and only stored hashed.

  • Exact permissions

    Each key reaches only the datasets it has scopes for. Nothing else, and never as a person.

  • Rotation without downtime

    Replace the secret whenever you like. The old key keeps working for 7 more days, then switches itself off.

  • Safe retries

    Send an Idempotency-Key. The same request twice gives the same answer, and nothing is written twice.

  • Partial success is fine

    One bad row doesn't stop the rest. The response says what happened to every row.

  • Generous limits

    600 requests per minute per key, up to 500 rows per request.

What a request looks like

A simple JSON request with your key. The response tells you what happened to every row.

Request
POST /api/v1/integration/grades
Authorization: Bearer dojo_sk_live_…
Idempotency-Key: 2026-06-14-grades-run-1
Content-Type: application/json

{
  "sourceSystem": "skolportal",
  "items": [
    {
      "externalId": "SIS-G1",
      "studentExternalId": "SIS-1001",
      "courseExternalId": "SIS-K1",
      "grade": "VG",
      "gradedAt": "2026-06-14T00:00:00Z",
      "attemptNumber": 1
    }
  ]
}
Response
{
  "data": {
    "dataset": "grades",
    "processed": 1,
    "created": 1,
    "updated": 0,
    "failed": 0,
    "results": [
      { "externalId": "SIS-G1", "status": "created", "code": null }
    ]
  }
}

We share the API documentation and the OpenAPI specification with your IT department or integration partner.

Example

Nordic West Academy: applications from the website

Nordic West Academy's website sends applications from its own form to DOJO's admissions. The key lives in a server-side function, not in the browser. The function checks the personal identity number, sends the application with a unique key for safe retries, and the applicant gets their application number right away.

  1. The applicant fills in the form on the school's website

  2. A server-side function checks the details and calls DOJO

  3. The application lands in the admissions flow and the applicant gets a receipt by e-mail

More connections

  • SIE4 to accounting

    Export of salaries and costs for import into Fortnox or Visma.

  • Calendar invites

    Invitations to steering-group meetings that land straight in the calendar.

  • CSV and PDF

    Export lists and reports when you need them outside DOJO.

Planning an integration?

Tell us which systems you have today, and we'll show you which datasets the modules you're interested in need.