> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Heroku Integration for AI Agents & Workflows

> Cloud platform for building, deploying, and managing applications

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/heroku.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=b7385c9d5b2e8d81ee1a5b710ea8e665" alt="Heroku logo" width="72" height="72" data-path="logos/heroku.svg" />

## Overview

Add **Heroku** to any ModuleX agent or workflow. Cloud platform for building, deploying, and managing applications via the Heroku Platform API (`api.heroku.com`).

<Info>
  **Categories**: Developer Tools & Infrastructure · Cloud Infrastructure · Paas · **Auth**: OAuth2 · **Actions**: 1
</Info>

## Authentication

### OAuth2 Authentication

Connect using Heroku OAuth (recommended)

#### Required Credentials

| Field         | Description                    | Required | Format                                 |
| ------------- | ------------------------------ | -------- | -------------------------------------- |
| Client ID     | Heroku OAuth App Client ID     | Yes      | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |
| Client Secret | Heroku OAuth App Client Secret | Yes      | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |

#### OAuth Configuration

* **Authorization URL**: `https://id.heroku.com/oauth/authorize`
* **Token URL**: `https://id.heroku.com/oauth/token`
* **Scopes**: `global`

## Available Actions

<AccordionGroup>
  <Accordion title="list_apps — List all apps accessible by the authenticated user">
    ### Response

    ```json theme={null}
    {
      "$defs": {
        "AppSummary": {
          "additionalProperties": false,
          "description": "A Heroku app summary.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "web_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Web Url"
            },
            "region": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Region"
            },
            "stack": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Stack"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            },
            "updated_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Updated At"
            }
          },
          "title": "AppSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "apps": {
          "items": {
            "$ref": "#/$defs/AppSummary"
          },
          "title": "Apps",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAppsOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* Heroku Platform API rate limit: 4,500 requests per hour per OAuth token.
* Rate limit headers: `RateLimit-Remaining` and `RateLimit-Reset` are returned
  on every response.
* Error model: non-2xx responses raise (Pattern A). The caller receives an
  `httpx.HTTPStatusError` surfaced by the modulex runtime.

## Related integrations

<CardGroup cols={3}>
  <Card title="DigitalOcean" href="/integrations/tools/digital-ocean" />

  <Card title="Algolia" href="/integrations/tools/algolia" />

  <Card title="Amazon Web Services" href="/integrations/tools/aws" />
</CardGroup>

## Links

* [Heroku](https://www.heroku.com)
