Ga naar inhoud
API: sign-up URL's (magic)

API: sign-up URL's (magic)

Sign-up URL’s aanmaken, gebruikers inschrijven, loginlinks sturen en de aangemelde gebruikers beheren.

Magic is de interne naam van de sign-up URL’s van Linqur. Een sign-up URL hoort bij een cursus en heeft een hash; een cursist die zich via die URL registreert, krijgt een account en wordt ingeschreven. Met deze endpoints maak en verwijder je sign-up URL’s, schrijf je een gebruiker direct in met de cursushash, vraag je een loginlink op of stuur je die, en vraag je de aangemelde gebruikers op of verwijder je ze. /magic/login stuurt een e-mail naar de gebruiker als mail true is. Dezelfde URL’s maak je in de interface: Een sign-up URL aanmaken.

Elk endpoint accepteert zowel GET als POST; de kop toont de methode die de specificatie als eerste noemt. Uploads gaan alleen met POST. Stuur je API-sleutel mee in de header Access-Token. De basis-URL is https://<your-platform>/local/ltisaas/api.php/v1; met v0 en het token dummy krijg je testdata. Foutmeldingen komen terug als JSON met success: false, error en debuginfo. Authenticatie, versies en limieten staan in API-documentatie. De beschrijvingen van endpoints en velden hieronder komen uit de specificatie en zijn Engels.

Gegenereerd uit de LtiSaas API-specificatie 1.0, opgehaald op 2026-10-30 van dev-auto.

EndpointBeschrijving
POST /magic/loginSend magic login link to a user
POST /magic/user/enrolEnroll a user using course hash (will create a user if not existent)
GET /magic/url/listList magic login URLs with course and category info
POST /magic/url/addGenerate a secure signup URL and course hash for a specific course
POST /magic/url/deleteDelete a magic login hash by ID
GET /magic/user/listList Magic Users
POST /magic/user/deleteDelete a Linqur Magic user by ID or username

POST /magic/login

Send magic login link to a user. Creates the user if they do not exist, optionally enrolls using a course hash, and returns or sends a login link.

Request body (application/json).

VeldTypeVerplichtBeschrijving
emailstringjaVoorbeeld: "user@example.com".
firstnamestringneeVoorbeeld: "John".
lastnamestringneeVoorbeeld: "Doe".
hashidintegerneeVoorbeeld: 12.
mailbooleanneetrue = send email, false = return login link only. Voorbeeld: false.

Voorbeeldverzoek

curl -X POST -H "Access-Token: <your token>" -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}' \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/login"

Voorbeeldantwoord (200). Login link generated.

{
  "status": "link_sent",
  "loginurl": "https://<your-platform>/auth/userkey/login.php?key=examplekey123"
}

Fouten: 400 Invalid request

POST /magic/user/enrol

Enroll a user using course hash (will create a user if not existent).

Request body (application/json).

VeldTypeVerplichtBeschrijving
emailstringjaVoorbeeld: "user@example.com".
firstnamestringjaVoorbeeld: "Jane".
lastnamestringjaVoorbeeld: "Doe".
coursehashstringjaVoorbeeld: "abc123hash456".

Voorbeeldverzoek

curl -X POST -H "Access-Token: <your token>" -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "firstname": "Jane", "lastname": "Doe", "coursehash": "abc123hash456"}' \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/user/enrol"

Voorbeeldantwoord (200). User enrolled successfully.

{
  "success": true,
  "message": "User enrolled"
}

Fouten: de specificatie noemt geen foutantwoorden voor dit endpoint.

GET /magic/url/list

List magic login URLs with course and category info. Returns a list of course hashes and signup URLs.

Parameters

Dit endpoint heeft geen parameters.

Voorbeeldverzoek

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/url/list"

Voorbeeldantwoord (200). Successful retrieval.

{
  "success": true,
  "results": [
    {
      "hashid": 31,
      "label": "Label 2",
      "hash": "681989hash1307",
      "signupurl": "https://<your-platform>/local/linqur_magic/view/signup.php?c=255227hash1822",
      "courseid": 29,
      "name": "Mock Course 6",
      "shortname": "MC91",
      "categoryid": 3,
      "categoryname": "Category 8"
    }
  ]
}

Fouten: 400 Bad Request, 401 Unauthorized

POST /magic/url/add

Generate a secure signup URL and course hash for a specific course. Creates or updates a magic login link for a course using a unique hash.

Request body (application/json).

VeldTypeVerplichtBeschrijving
courseidintegerjaVoorbeeld: 176.
flagstringneeVoorbeeld: "APITEST".

Voorbeeldverzoek

curl -X POST -H "Access-Token: <your token>" -H "Content-Type: application/json" \
  -d '{"courseid": 176}' \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/url/add"

Voorbeeldantwoord (200). Link created or refreshed.

{
  "success": true,
  "hashid": 27,
  "courseid": 176,
  "hash": "ab63d626c94df525d45dc29257a0df5d3...",
  "secure_link": "https://<your-platform>/local/linqur_magic/view/signup.php?c=ab63d6...",
  "label": "APITEST"
}

Fouten: 400 Bad Request, 401 Unauthorized

POST /magic/url/delete

Delete a magic login hash by ID. Deletes a generated signup hash by its unique ID.

Request body (application/json).

VeldTypeVerplichtBeschrijving
hashidintegerjaVoorbeeld: 37.

Voorbeeldverzoek

curl -X POST -H "Access-Token: <your token>" -H "Content-Type: application/json" \
  -d '{"hashid": 37}' \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/url/delete"

Voorbeeldantwoord (200). Hash successfully deleted.

{
  "success": true
}

Fouten: 400 Bad Request, 401 Unauthorized

GET /magic/user/list

List Magic Users. Returns a list of users registered via Magic login, optionally filtered by courseid.

Parameters

NaamInTypeVerplichtBeschrijving
courseidqueryintegerneeOptional course ID to filter by.

Voorbeeldverzoek

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/user/list"

Voorbeeldantwoord (200). Successful retrieval.

{
  "success": true,
  "results": [
    {
      "userid": 42,
      "firstname": "Alice",
      "lastname": "Smith",
      "email": "alice@example.com",
      "courseid": 179,
      "coursegrade": 86.5,
      "timecreated": 1717658981,
      "ipaddress": "192.168.1.1"
    }
  ]
}

Fouten: 400 Bad Request, 401 Unauthorized

POST /magic/user/delete

Delete a Linqur Magic user by ID or username. Deletes a Moodle user that is registered as a Linqur Magic user. You must provide either the userid or the username.

Request body (application/json).

VeldTypeVerplichtBeschrijving
useridintegerneeVoorbeeld: 411.
usernamestringneeVoorbeeld: "test@example.com".

Geen enkel veld is op zichzelf verplicht; zie de beschrijving.

Voorbeeldverzoek

curl -X POST -H "Access-Token: <your token>" -H "Content-Type: application/json" \
  -d '{"userid": 411, "username": "test@example.com"}' \
  "https://<your-platform>/local/ltisaas/api.php/v1/magic/user/delete"

Voorbeeldantwoord (200). User successfully deleted.

{
  "success": true
}

Fouten: 400 Bad Request, 401 Unauthorized

Laatst bijgewerkt op