# Moodle integrations

> Call the Moodle API from any Tray.ai workflow with the HTTP Connector.

**Canonical page:** https://tray.ai/connectors/moodle-integrations/
**Categories:** Human resources
**Connects through:** HTTP Connector

## Overview

Moodle is an open-source learning management system that schools and companies use to run online courses, enrol learners, and track grades. Tray.ai connects to Moodle through the HTTP Connector, so your workflows can call the Moodle API alongside the rest of your stack.

## Use cases

### Courses

Read, create, update, and delete courses in Moodle from any Tray.ai workflow. The Moodle API covers calls such as list courses and create courses.

- List courses
- Create courses
- Update courses

### Users

Read, create, update, and delete users in Moodle from any Tray.ai workflow. The Moodle API covers calls such as get users by ID and create users.

- Get users by ID
- Create users
- Update users

### Enrolments

Read and update enrolments in Moodle from any Tray.ai workflow. The Moodle API covers calls such as enrol users and list enrolled users.

- Enrol users
- List enrolled users
- Edit a user enrolment

### Grades

Read, create, and update grades in Moodle from any Tray.ai workflow. The Moodle API covers calls such as get grades and update grades.

- Get grades
- Update grades
- Create grade categories

## Challenges Tray.ai solves

### Keeping Moodle credentials out of logs

A raw API call usually means pasting a key or token into the request, where it ends up in step inputs, logs, and screenshots.

**How Tray.ai helps:** Store Moodle credentials once as a Tray.ai authentication and reference them from the HTTP Connector. Tray.ai masks authentication values in logs, so the secret never shows up in a step's input or output.

### Going from the Moodle API docs to a working call

Translating an example request from API docs into a workflow step means copying the method, URL, headers, and body by hand.

**How Tray.ai helps:** Paste a cURL example from the Moodle API docs into the HTTP Connector and Tray.ai fills in the method, URL, headers, and body for you.

### Handling files and non-JSON responses

Not every API answers in JSON. Some return XML, files, or binary data, or expect a multipart upload.

**How Tray.ai helps:** The HTTP Connector parses JSON and XML responses, returns files you can pass to the next step, and sends multipart form data for uploads.

## Frequently asked questions

### Does Tray.ai connect to Moodle?

Yes. Tray.ai connects to Moodle through the HTTP Connector, which calls the Moodle API directly. Any call the Moodle API documents can run as a step in a Tray.ai workflow.

### How does Tray.ai authenticate with Moodle?

The Moodle API uses an API key in the query string. You save it once as a Tray.ai authentication, and the HTTP Connector adds it to every request.

### Can I get a dedicated Moodle connector?

Moodle runs through the HTTP Connector rather than a dedicated connector. If your team wants one, the Tray.ai connector SDK can build a dedicated Moodle connector from the Moodle API.

## Learn more

- Intelligent Integration: https://tray.ai/platform/intelligent-ipaas/
- Merlin Agent Builder: https://tray.ai/platform/merlin-agent-builder/
- Agent Gateway for MCP: https://tray.ai/platform/agent-gateway/
- Book a demo: https://tray.ai/contact/
