> For the complete documentation index, see [llms.txt](https://help.gleantap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.gleantap.com/settings/api.md).

# API

Gleantap exposes a REST API for building integrations with your studio's data — reading customers and events out, or pushing contacts, memberships, and notifications in.

The full endpoint reference is published at [**developers.gleantap.com**](https://developers.gleantap.com). This page covers what you need before you send your first request.

## Base URL

```
https://api.gleantap.com/v2/ExternalApi
```

All V2 endpoints extend from this base. See [developers.gleantap.com](https://developers.gleantap.com) for the full path list.

## Authentication

Every request needs three values:

| Where                    | Value             | Notes                             |
| ------------------------ | ----------------- | --------------------------------- |
| `X-API-KEY` header       | Your API key      | From Settings → API               |
| `X-SECRET-KEY` header    | Your API secret   | From Settings → API               |
| `app_id` in request body | Your workspace ID | Visible in the URL when logged in |

### Where to find your API Key and Secret

**Step 1** — Open Gleantap and click **Settings** in the top-right menu. This opens a Settings page with an **API** tab.

<figure><img src="https://312952119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaFKpjLzPT7iDAWD0tQXo%2Fuploads%2F8vBqZnOwpHSem9qptL8S%2FScreenshot%202023-10-02%20at%203.37.26%20PM.png?alt=media&#x26;token=e413510c-22c4-4248-89af-3cff37b90766" alt=""><figcaption></figcaption></figure>

**Step 2** — On the API tab, your API Key and API Secret are listed. If none exists yet, click **Generate New Key**.

<figure><img src="https://312952119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaFKpjLzPT7iDAWD0tQXo%2Fuploads%2FpYOO0r2VaG0CHJPs3a6l%2FKVpM5YUElQ7fTBE6Qdg71iR8X8k2cyQhDw%20(1).png?alt=media&#x26;token=a659d298-dce7-4d21-a3a1-db828e88e731" alt=""><figcaption></figcaption></figure>

You can generate multiple keys; delete inactive ones to avoid abuse.

### Where to find your app\_id

Your `app_id` is the identifier at the end of your workspace URL after you log in — a 24-character hex string.

For example, in this URL:

```
https://app2new.gleantap.com/apps/newDashboard/6993672aca1046edb9094d75
```

The `app_id` is `6993672aca1046edb9094d75`. Include it in the request body of every API call.

## Rate limit

**1,000 calls per rolling 24-hour window** by default. If you exceed the limit, the API returns a `429` status with the message `You have exceeded your rate limit`.

Need a higher limit? Email <support@gleantap.com>.

## Endpoint reference

Full documentation of every endpoint lives at [developers.gleantap.com](https://developers.gleantap.com). Endpoints are grouped into two categories:

### Fetch Data — read data out of Gleantap

* [Attribute List](https://developers.gleantap.com/fetch-data/attribute-list)
* [Attribute Event List](https://developers.gleantap.com/fetch-data/attribute-event-list)
* [Locations](https://developers.gleantap.com/fetch-data/locations)
* [Class Schedule](https://developers.gleantap.com/fetch-data/class-schedule)
* [Customers](https://developers.gleantap.com/fetch-data/customers)
* [Events for a Customer](https://developers.gleantap.com/fetch-data/events-for-a-customer)
* [Opted In Customers](https://developers.gleantap.com/fetch-data/opted-in-customers)
* [Opted Out Customers](https://developers.gleantap.com/fetch-data/opted-out-customers)
* [Campaigns](https://developers.gleantap.com/fetch-data/campaigns)
* [Workrooms](https://developers.gleantap.com/fetch-data/workrooms)
* [Forms](https://developers.gleantap.com/fetch-data/forms)
* [Form Submissions](https://developers.gleantap.com/fetch-data/form-submissions)

### Update Data — write data into Gleantap

* [Create or Update Location](https://developers.gleantap.com/update-data/create-or-update-location)
* [Create a Class](https://developers.gleantap.com/update-data/create-a-class)
* [Delete Class](https://developers.gleantap.com/update-data/delete-class)
* [Create or Update Contact](https://developers.gleantap.com/update-data/create-or-update-contact)
* [SMS Opt-in a Contact](https://developers.gleantap.com/update-data/sms-opt-in-a-contact)
* [Add Memberships for Contact](https://developers.gleantap.com/update-data/add-memberships-for-contact)
* [Create an Event](https://developers.gleantap.com/update-data/create-an-event)
* [Delete Contact](https://developers.gleantap.com/update-data/delete-contact)
* [Merge Contacts](https://developers.gleantap.com/update-data/merge-contacts)
* [Send SMS Notification](https://developers.gleantap.com/update-data/send-sms-notification)
* [Send Email Notifications](https://developers.gleantap.com/update-data/send-email-notifications)

## V3 API

A newer V3 API is in active development. For production integrations today, use V2. We'll announce V3 availability when it's ready for public use.

## Support

For API help, integration questions, or higher rate limits, email <support@gleantap.com>.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.gleantap.com/settings/api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
