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.
| Endpoint | Beschrijving |
|---|---|
| POST /magic/login | Send magic login link to a user |
| POST /magic/user/enrol | Enroll a user using course hash (will create a user if not existent) |
| GET /magic/url/list | List magic login URLs with course and category info |
| POST /magic/url/add | Generate a secure signup URL and course hash for a specific course |
| POST /magic/url/delete | Delete a magic login hash by ID |
| GET /magic/user/list | List Magic Users |
| POST /magic/user/delete | Delete 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).
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
email | string | ja | Voorbeeld: "user@example.com". |
firstname | string | nee | Voorbeeld: "John". |
lastname | string | nee | Voorbeeld: "Doe". |
hashid | integer | nee | Voorbeeld: 12. |
mail | boolean | nee | true = 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).
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
email | string | ja | Voorbeeld: "user@example.com". |
firstname | string | ja | Voorbeeld: "Jane". |
lastname | string | ja | Voorbeeld: "Doe". |
coursehash | string | ja | Voorbeeld: "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).
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
courseid | integer | ja | Voorbeeld: 176. |
flag | string | nee | Voorbeeld: "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).
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
hashid | integer | ja | Voorbeeld: 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
| Naam | In | Type | Verplicht | Beschrijving |
|---|---|---|---|---|
courseid | query | integer | nee | Optional 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).
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
userid | integer | nee | Voorbeeld: 411. |
username | string | nee | Voorbeeld: "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