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.
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.
| Dataset | Endpoint | Scope | Used by |
|---|---|---|---|
| Programmes | POST /integration/programs | programs:write | Foundation |
| Courses | POST /integration/courses | courses:write | Foundation |
| Cohorts | POST /integration/cohorts | cohorts:write | Foundation |
| Students | POST /integration/students | students:write | Foundation |
| Teachers | POST /integration/teachers | teachers:write | Foundation |
| Grades | POST /integration/grades | grades:write | Learning |
| LIA placements | POST /integration/lia-placements | lia:write | Company & LIA |
| Applications | POST /integration/applications | applications:write | Admin & Compliance |
| Leads | POST /integration/prospects | prospects:write | Admin & 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.
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
}
]
}{
"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.
The applicant fills in the form on the school's website
A server-side function checks the details and calls DOJO
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.