---
title: "Use OData"
description: "Explains how the Reporting API uses OData, including the service root URLs, resource paths, query options, logical operators, and the rate limit."
contentType: "guide"
url: "https://developer.mindtickle.com/docs/reporting/use-odata/"
---

## Prerequisites

1. [FAQ](/docs/reporting/faq/#how-do-i-enable-reporting-api-access-for-a-user): Your email address must be enabled for Reporting API access.

The Reporting API uses the Open Data Protocol (OData) to extract platform engagement and performance data for your users into the BI tool of your choice.

## URL components

The URL used to extract data has three components: the service root URL, the resource path, and the query options.

![Structure of an OData URL: the service root URL, followed by the resource path, followed by the query options.](/docs/images/reporting/odata-url-structure.png)

### Service root URL

Access the OData feed by entering the service root URL. The Reporting API has two service root URLs to query and extract data. Use the one that applies to your region.

| Region | Service root URL |
| --- | --- |
| Global / Standard | `https://admin.mindtickle.com/Odata.svc` |
| US region | `https://admin.prod-us.mindtickle.com/Odata.svc` |

### Resource path

To extract data, specify the table name in the URL. Append the table name to the service root URL.

For example, to access the `LearnerModulePerformances` table:

```text
https://admin.mindtickle.com/Odata.svc/LearnerModulePerformances
```

### Query options

Append query options to filter, sort, or format the data.

- **Filtering:** Use the `$filter` system query option to extract specific records. For example, filter by a specific `ModuleId`:

  ```text
  https://admin.mindtickle.com/Odata.svc/LearnerModulePerformances?$filter=ModuleId eq '123456789012345101'
  ```

- **Output format:** The default output format is XML. Change it to JSON or CSV with the `$format` option. For example, download as CSV:

  ```text
  https://admin.mindtickle.com/Odata.svc/LearnerModulePerformances?$format=csv
  ```

### Logical operators

The Reporting API supports the following logical operators. These syntax examples use illustrative fields: `Title` is a string and `Total` is numeric. Use the field names and types defined in your table metadata. Quote string literals; do not quote numeric literals.

| Operator | Value | Condition | Example |
| --- | --- | --- | --- |
| Equals | `eq` | True if the left operand is equal to the right operand. | `$filter=Title eq 'Manager'` |
| Not equals | `ne` | True if the left operand is not equal to the right operand. | `$filter=Title ne 'Manager'` |
| Greater than | `gt` | True if the left operand is greater than the right operand. | `$filter=Total gt 100` |
| Greater than or equal | `ge` | True if the left operand is greater than or equal to the right operand. | `$filter=Total ge 100` |
| Less than | `lt` | True if the left operand is less than the right operand. | `$filter=Total lt 100` |
| Less than or equal | `le` | True if the left operand is less than or equal to the right operand. | `$filter=Total le 100` |
| Logical and | `and` | True if both operands evaluate to true. | `$filter=Title eq 'Manager' and Total eq 100` |
| Logical or | `or` | True if either operand evaluates to true. | `$filter=Title eq 'Manager' or Total eq 100` |

### Combining query options

Combine filtering and formatting in a single query with the ampersand (`&`) symbol. For example, extract data for a specific `ModuleId` in CSV format:

```text
https://admin.mindtickle.com/Odata.svc/LearnerModulePerformances?$filter=ModuleId eq '123456789012345101'&$format=csv
```

For more details, see the OData [URL conventions documentation](https://www.odata.org/documentation/odata-version-3-0/url-conventions/).

:::note
The API is designed for data extraction, not direct analysis. Use BI tools such as Excel, Tableau, or Power BI for analysis.
:::

## Rate limit

The Reporting API allows a maximum of 5 requests per second. Ensure your integration respects this rate limit to avoid service interruptions.

## Related

- [Tables: performance and completion](/docs/reporting/tables-performance-and-completion/): The tables you can name in the resource path, with their update frequency.
- [Best practices](/docs/reporting/best-practices/): Query URL guidelines and sample queries for each table.
- [Pagination](/docs/reporting/pagination/): Fetch datasets larger than a single request can return.
