Skip Navigation
Show nav
Heroku Dev Center Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
Heroku Dev Center Dev Center
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log in or Sign up
View categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Buildpacks
    • Platform Principles
  • Developer Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
      • Working with Node.js
    • Ruby
      • Rails Support
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • Working with PHP
      • PHP Behavior in Heroku
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Vector Database
    • Model Context Protocol
    • Working with AI
    • Heroku Inference
      • Inference Essentials
      • AI Models
      • Inference API
      • Heroku Inference Quick Start Guides
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
    • Heroku AppLink
      • Getting Started with Heroku AppLink
      • Working wtih Heroku AppLink
      • Heroku AppLink Reference
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Other Salesforce Integrations
  • Integrating with Salesforce
  • Heroku AppLink
  • Heroku AppLink Reference
  • Heroku AppLink API

Heroku AppLink API

Last updated July 14, 2025

Table of Contents

  • Version Support
  • Authentication
  • Request Methods
  • Shared Objects
  • Connection Endpoints
  • Authorization Endpoints
  • Publication Endpoints
  • Data Cloud Endpoints

Heroku AppLink provides an API to automate the creation, maintenance, and monitoring of connections, authorizations, and publications between a Salesforce org and a Heroku app.

A good way to work with the Heroku AppLink API is to use the Heroku AppLink CLI plugin. The plugin is useful for setting up and managing connections with the Heroku AppLink add-on.

Version Support

Heroku supports version 1 of the Heroku AppLink API. Heroku communicates certain changes made to the API, as well as any new API versions per our compatibility policy.

Authentication

The Heroku AppLink API requires a Heroku Platform API direct authorization token. This token is for your application’s Heroku user only. Heroku AppLink doesn’t support API access on behalf of other Heroku customers. The Heroku AppLink CLI plugin makes requests to the Heroku AppLink API with the default Bearer Token authentication scheme. The AppLink API determines if the user has access to the app and add-on associated with each request.

Make a request to Platform API to get the Add-on SSO Params endpoint with the add‑ons‑sso API schema variant:

GET /apps/:app_id/addons/:addon_id/ssoAuthorization: Bearer HRKU-01234567-89ab-cdef-0123-456789abcdefAccept: application/vnd.heroku+json; version=3.add-ons-sso

Request Methods

Most of the Heroku AppLink API responds to either GET, POST, PATCH, or DELETE requests.

Shared Objects

Org

This object represents a Salesforce or Data Cloud org.

Name Type Description Example
id string unique identifier of connected org 00DSG00000DGEIr2AP
instance_url string instance URL of connected org https://mydomain.my.salesforce.com
connection_name / developer_name string name of connection (connection_name) or authorization (developer_name) productionOrg
type string type of org
one of: SalesforceOrg, DataCloudOrg
SalesforceOrg
api_version string API version of org 64.0
user_auth See User Auth

User Auth

This object represents a Salesforce user’s details.

Name Type Description Example
access_token string access token of authorization 00DSG00000DGEIr2AP!<token>
username string username of authorization admin@example.org
user_id string user ID of authorization 005...

Connection Endpoints

Use these endpoints to create, get info, and maintain your AppLink connections.

Connect to an Org

Connect your AppLink add-on to a Salesforce or Data Cloud org.

POST /addons/${addon_uuid}/connections/[salesforce|datacloud]

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
connection_name string name of connection productionOrg

Optional Parameters

Name Type Description Example
login_url string Salesforce login URL to use
default: https://login.salesforce.com
https://login.salesforce.com

Example Request:

POST /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/salesforce
{
  "connection_name": "productionOrg",
  "login_url": "https://login.salesforce.com"
}

Response Attributes

Name Type Description Example
id string unique identifier of connection a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
redirect_uri string endpoint to redirect to after completing OAuth https://login.salesforce.com/services/oauth2/authorize?client_id=3MVG...&redirect_uri=https...
status string see Connection Statuses connected
org json see Org
app_id string unique identifier of app a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
addon_id string unique identifier of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
created_at date when connection was created 2025-04-06T18:20:42.226577Z
connection_method string method used for connection
one of: JWT, OAuth
JWT

Example Response:

{
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "redirect_uri": "https://login.salesforce.com/services/oauth2/authorize?client_id=3MVG...&redirect_uri=https%3A%2F%2Fcreds-virginia.events.staging.herokudev.com%2Fsalesforce%2Foauth%2Fcallback&response_type=code&state=ey...",
  "status": "connecting",
  "org": {
     "id": "00DSG00000DGEIr2AP",
     "connection_name": "productionOrg",
     "instance_url": "https://mydomain.my.salesforce.com",
     "type": "SalesforceOrg",
     "api_verion": "57.0",
     "user_auth": {
        "username": "admin@example.org",
        "user_id": "005...",
        "access_token": "00DSG00000DGEIr2AP!<token>"
      }
  "app_id": "ef01ec58-63f6-478b-ab87-34f82b3c5bdd",
  "addon_id": "fe3b4938-3383-4c40-868c-1a5cdc38a358",
  "created_at": "2025-04-06T18:20:42.226577Z",
  "connection_method": "OAuth"
  }
}

Connect to an Org with JWT

Connect your AppLink add-on to a Salesforce org with JWT.

POST /addons/${add_uuid}/connections/salesforce/jwt

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
connection_name string name of connection productionOrg
alias string alias for the credential on hemp-creds example-alias
jwt_private_key string private key to authorize with -----BEGIN PRIVATE KEY-----\nMII...C+Q=\n-----END PRIVATE KEY-----"
client_id string unique identifier of consumer key 3MVG8...NM0ZqZc9aT
username string Salesforce username test-2mhpnyuxne8k@example.com

Optional Parameters

Name Type Description Example
login_url string Salesforce login URL to use
default: https://login.salesforce.com
https://login.salesforce.com

Example Request:

POST /addons/51fc983e-d106-4dac-8f75-9dd103d4381a/connections/salesforce/jwt
{
  "connection_name": "sandboxOrg",
  "login_url": "https://test.salesforce.com",
  "alias": "example-alias",
  "client_id": "3MVG8...NM0ZqZc9aT",
  "jwt_private_key": "-----BEGIN PRIVATE KEY-----\nMII...C+Q=\n-----END PRIVATE KEY-----",
    "username": "test-2mhpnyuxne8k@example.com"
}

Response Attributes

Name Type Description Example
id string unique identifier of connection a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Connection Statuses connected
org json see Org
app_id string unique identifier of app a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
addon_id string unique identifier of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
created_at date when connection was created 2025-04-06T18:20:42.226577Z
connection_method string method used for connection
one of: JWT, OAuth
JWT

Example Response:

{
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "status": "connecting",
  "org": {
    "id": "00DSG00000DGEIr2AP",
    "connection_name": "sandboxOrg",
    "instance_url": "https://mydomain.my.salesforce.com",
    "type": "SalesforceOrg",
    "api_verion": "57.0",
    "user_auth": {
        "username": "test-2mhpnyuxne8k@example.com"
        "user_id": "005...",
      "access_token": "00DSG00000DGEIr2AP!<token>"
    }
  },
  "app_id": "ba80caca-e1c6-41ee-9a60-39b7740e6865",
  "addon_id": "51fc983e-d106-4dac-8f75-9dd103d4381a",
  "created_at": "2025-04-06T18:20:42.226577Z",
  "connection_method": "JWT"
}

Disconnect from an Org

Disconnect your AppLink add-on from a Salesforce or Data Cloud org.

DELETE /addons/${addon_uuid}/connections/{conn_id_or_conn_name}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name string unique identifier or name of connection productionOrg
app_id string unique identifier of app a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b

Example Request:

DELETE /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/productionOrg

Response Attributes

Name Type Description Example
id string unique identifier of connection a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Connection Statuses disconnected

Example Response:

204 OK
{
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "status": "disconnected"
}

Get Connections By Add-on

Get a list of AppLink connections for an add-on.

GET /addons/${addon_uuid}/connections

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections

Response Attributes

Name Type Description Example
id string unique identifier of connection a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Connection Statuses connected
org json see Org
addon_id string unique identifier of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
connection_method string method used for connection
one of: JWT, OAuth
JWT

Example Response:

[
  {
     "id": "4f96e929-5e21-4f9e-8f3c-375186af31fc",
     "status": "connecting",
     "org": {
        "id": "00D000000000001AAA",
        "connection_name": "Original SF Org",
        "instance_url": "https://mydomain.my.salesforce.com",
        "type": "SalesforceOrg",
        "api_verion": "57.0",
        "user_auth": {
           "username": "user1@sf-org-1.com",
           "user_id": "005...",
           "access_token": "00DSG00000DGEIr2AP!<token>"
         }
       }
    "addon_id": "fe3b4938-3383-4c40-868c-1a5cdc38a358",
    "connection_method": "OAuth"
  },
  {
     "id": "aa216852-2294-4524-aea0-d633f36a6c36",
     "status": "disconnected",
     "org": {
        "id": "DCO000000000001CCC",
        "connection_name": "Test DC Org 1",
        "instance_url": "https://mydomain.my.salesforce.com",
        "type": "DatacloudOrg",
        "api_verion": "57.0",
        "user_auth": {
           "username": "user3@dc-org-1.com",
           "user_id": "005...",
           "access_token": "00DSG00000DGEIr2AP!<token>"
        }
     }
    "addon_id": "fe3b4938-3383-4c40-868c-1a5cdc38a358",
    "connection_method": "OAuth"
  },
  {
     "id": "bb155b7d-1eee-4fb1-900e-35421c07755e",
     "status": "connected",
     "org": {
        "id": "00D000000000002BBB",
        "connection_name": "Test SF Org 2"
        "instance_url": "https://mydomain2.my.salesforce.com",
        "type": "SalesforceOrg",
        "api_verion": "57.0",
        "user_auth": {
           "username": "user2@sf-org-2.com",
           "user_id": "005...",
           "access_token": "00DSG00000DGEIr2AP!<token>"
         }
     }
    "addon_id": "51fc983e-d106-4dac-8f75-9dd103d4381a",
    "connection_method": "JWT"
  }
]

Get Connections By App

Get a list of AppLink connections for an app.

GET /addons/${addon_uuid}/connections/${app_uuid}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
app_uuid string unique identifier or name of app ef01ec58-63f6-478b-ab87-34f82b3c5bdd

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/ef01ec58-63f6-478b-ab87-34f82b3c5bdd

Response Attributes

Name Type Description Example
id string unique identifier of connection a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Connection Statuses connected
org json see Org
app_id string unique identifier of app a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
addon_id string unique identifier of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
created_at date when connection was created 2025-04-06T18:20:42.226577Z
last_modified_at date when connection was last modified 2025-04-09T18:20:42.226577Z
connection_method string method used for connection
one of: JWT, OAuth
JWT

Example Response:

[
  {
    "id": "4f9dff98-11e9-4b0f-9f2e-bbb710bf56fa",
    "status": "connected",
    "org": {
      "id": "00DSG00000KWTOr2AP",
      "connection_name": "myOtherOrg",
      "instance_url": "https://mydomain.my.salesforce.com",
      "type": "SalesforceOrg",
      "api_verion": "57.0",
      "user_auth": {
        "username": "use@however.org"
        "user_id": "005...",
    "access_token": "00DSG00000DGEIr2AP!<token>"
    }
   },
    "app_id": "ef01ec58-63f6-478b-ab87-34f82b3c5bdd",
    "addon_id": "fe3b4938-3383-4c40-868c-1a5cdc38a358",
    "created_at": "2025-04-06T18:20:42.226577Z",
    "last_modified_at": "2025-04-09T18:20:42.226577Z",
    "connection_method": "OAuth",
  },
  {
    "id": "ce2ffad8-5692-40e5-b1f6-7f7206d3d5ef",
    "status": "connected",
    "org": {
      "id": "00DSG00000DGEIr2AP",
      "connection_name": "productionOrg",
      "instance_url": "https://mydomain.my.salesforce.com",
      "type": "SalesforceOrg",
      "api_verion": "57.0",
      "user_auth": {
        "username": "admin@example.org"
        "user_id": "005...",
    "access_token": "00DSG00000DGEIr2AP!<token>"
    }
   },
    "app_id": "ef01ec58-63f6-478b-ab87-34f82b3c5bdd",
    "addon_id": "fe3b4938-3383-4c40-868c-1a5cdc38a358",
    "created_at": "2025-04-06T18:20:42.226577Z",
    "last_modified_at": "2025-04-09T18:20:42.226577Z",
    "connection_method": "OAuth",
  }
]

Get Connection Details

Get info for an individual Heroku AppLink connection.

GET /addons/${addon_uuid}/connections/{conn_id_or_conn_name_or_org_id}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name_or_org_id string unique identifier or name of connection or 18 character Salesforce org ID productionOrg

Example Request:

# Request using connection name
GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/productionOrg

# Request using connection UUID
GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b

# Request using Org ID
GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/00DSG00000DGEIr2AP

Response Attributes

Name Type Description Example
id string unique identifier of connection a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Connection Statuses connected
org json see Org
addon_id string unique identifier of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
created_at date when connection was created 2025-04-06T18:20:42.226577Z
created_by string unique email address of user who created connection foo@heroku.com
last_modified_at date when connection was last modified 2025-04-09T18:20:42.226577Z
last_modified_by string unique email address of user who last modified connection bar@heroku.com
created_via_app string name of Heroku app when connection was created Foo
connection_method string method used for connection
one of: JWT, OAuth
JWT

Example Response:

{
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "status": "connected",
  "org": {
    "id": "00DSG00000DGEIr2AP",
    "connection_name": "productionOrg",
    "instance_url": "https://mydomain.my.salesforce.com",
    "type": "DataCloudOrg",
    "api_verion": "57.0",
      "user_auth": {
        "username": "admin@example.org"
        "user_id": "005...",
    "access_token": "00DSG00000DGEIr2AP!<token>"
    }
  },
  "app_id": "ef01ec58-63f6-478b-ab87-34f82b3c5bdd",
  "addon_id": "fe3b4938-3383-4c40-868c-1a5cdc38a358",
  "created_at": "2025-04-06T18:20:42.226577Z",
  "created_by": "creator@somewhere.com",
  "last_modified_at": "2025-04-09T18:20:42.226577Z",
  "last_modified_by": "modifier@somewhere.com",
  "created_via_app": "Foo"
  "connection_method": "OAuth"
}

Authorization Endpoints

Use these endpoints to create, get info, and maintain your AppLink authorizations.

Authorize a User

Authorize a Salesforce or Data Cloud user and store their credentials to your AppLink add-on.

POST /addons/${addon_uuid}/authorizations/[salesforce|datacloud]

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
developer_name string name for authorization authUser

Optional Parameters

Name Type Description Example
login_url string Salesforce login URL to use
default: https://login.salesforce.com
https://login.salesforce.com

Example Request:

POST /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/authorizations
{
  "developer_name": "authUser",
  "login_url": "https://login.salesforce.com"
}

Response Attributes

Name Type Description Example
id string unique identifier of authorization a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Authorization Statuses authorized
org json see Org
redirect_uri string endpoint to redirect to after completing OAuth https://login.salesforce.com/services/oauth2/authorize?client_id=3MVG...&redirect_uri=https...
created_at date when authorization was created 2025-04-06T18:20:42.226577Z

Example Response:

{
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "redirect_uri":   "https://login.salesforce.com/services/oauth2/authorize?client_id=3MVG...&redirect_uri=https%3A%2F%2Fcreds-virginia.events.staging.herokudev.com%2Fsalesforce%2Foauth%2Fcallback&response_type=code&state=ey...",
  "status": "authorizing",
  "org": {
    "id": "00DSG00000DGEIr2AP",
    "developer_name": "productionOrg",
    "instance_url": "https://mydomain.my.salesforce.com",
    "type": "SalesforceOrg",
    "api_verion": "57.0",
      "user_auth": {
        "username": "admin@example.org"
        "user_id": "005...",
      "access_token": "00DSG00000DGEIr2AP!<token>"
    }
  },
  "created_at": "2025-04-06T18:20:42.226577Z",
}

Remove User Authorization

Remove an existing Salesforce or Data Cloud user authorization on your AppLink add-on.

DELETE  /addons/${addon_uuid}/authorizations/${developer_name_or_id}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
developer_name_or_id string unique identifier or name of authorization authUser

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/authorizations/authUser

Response Attributes

Name Type Description Example
id string unique identifier of authorization a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Authorization Statuses disconnected

Example Response:

204 OK
{
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "status": "disconnected"
}

Get Authorized Users

Get a list of AppLink authorized users for an add-on.

GET /addons/${addon_uuid}/authorizations

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/authorizations

Response Attributes

Name Type Description Example
id string unique identifier of authorization a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Authorization Statuses authorized
org json see Org
app_name string name of app app-name
created_at date when authorization was created 2025-04-06T18:20:42.226577Z
created_by string unique email address of user who created authorization foo@heroku.com
last_modified_at date when authorization was last modified 2025-04-09T18:20:42.226577Z
last_modified_by string unique email address of user who last modified the authorization bar@heroku.com

Example Response:

[
 {
  "id": "a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b",
  "status": "authorizing",
  "org": {
       "id": "00DSG00000DGEIr2AP",
    "developer_name": "productionOrg",
    "instance_url": "https://mydomain.my.salesforce.com",
    "type": "SalesforceOrg",
       "api_verion": "57.0",
       "user_auth": {
        "username": "admin@example.org"
        "user_id": "005...",
    "access_token": "00DSG00000DGEIr2AP!<token>"
    }
  },
  "created_at": "2025-04-06T18:20:42.226577Z",
  "created_by": "foo@heroku.com",
  "last_modified_at": "2025-04-09T18:20:42.226577Z",
  "last_modified_by": "bar@heroku.com"
},
{
  "id": "b8bc7bcb-89c3-45c0-b7b7-4fb4427e598a",
  "status": "authorized",
  "org": {
       "id": "00DSG00000DGEIr2AP",
       "developer_name": "productionOrg2",
       "instance_url": "https://mydomain.my.salesforce.com",
       "type": "SalesforceOrg",
       "api_verion": "57.0",
       "user_auth": {
         "username": "admin@example.org"
         "user_id": "005...",
     "access_token": "00DSG00000DGEIr2AP!<token>"
    }
  },
  "created_at": "2025-03-06T18:20:42.226577Z",
  "created_by": "foo@heroku.com",
  "last_modified_at": "2025-03-09T18:20:42.226577Z",
  "last_modified_by": "bar@heroku.com"
}
]

Get Authorization Details

Get info for an individual authorized user.

GET /addons/${addon_uuid}/authorizations/${developer_name_or_id}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
developer_name_or_id string unique identifier or name of authorization authUser

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/authorizations/productionOrg

Response Attributes

Name Type Description Example
id string unique identifier of authorization a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
status string see Authorization Statuses authorized
org json see Org
app_name string name of app app-name
created_at date when authorization was created 2025-04-06T18:20:42.226577Z
created_by string unique email address of user who created authorization foo@heroku.com
last_modified_at date when authorization was last modified 2025-04-09T18:20:42.226577Z
last_modified_by string unique email address of user who last modified the authorization bar@heroku.com
created_via_app string name of Heroku app that last modified authorization Foo

Example Response:

{
  "id": "b8bc7bcb-89c3-45c0-b7b7-4fb4427e598a",
  "status": "authorized",
  "org": {
       "id": "00DSG00000DGEIr2AP",
       "developer_name": "productionOrg2",
       "instance_url": "https://dmomain.my.salesforce.com",
       "type": "SalesforceOrg",
       "api_verion": "57.0",
       "user_auth": {
          "username": "admin@example.org",
          "user_id": "005...",
      "access_token": "00DSG00000DGEIr2AP!<token>"
   }
  },
  "created_at": "2025-03-06T18:20:42.226577Z",
  "last_modified_at": "2025-03-09T18:20:42.226577Z",
  "created_by": "foo@heroku.com",
  "last_modified_by": "foo@heroku.com",
  "created_via_app": "Foo"
}

Publication Endpoints

Use these endpoints to publish apps, get info, and maintain your AppLink publications.

Publish Your App to Salesforce

Publish your app to Salesforce and turn your app’s APIs into actions.

POST /addons/${addon_uuid}/connections/salesforce/${conn_id_or_conn_name}/apps

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name string unique identifier or name of connection productionOrg
app_request json See app_request
metadata file zip file of OpenAPI spec

app_request

Name Type Description Example
client_name string name for client app foo
authorization_connected_app_name string (optional) name of connected app to create connected-app
authorization_permission_set_name string (optional) name of permission set to create permission-set

Example Request:

POST /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/salesforce/my-prod-org/apps

content-type: application/json
  "app_request" {
    "client_name": "foo"
     "authorization_connected_app_name": "connected-app"
     "authorization_permission_set_name" "permission-set"
  }

content-type: application/zip
  "metadata": <binary-encoded metadata.zip>
}

Response Attributes

Name Type Description Example
id string unique identifier of created external service registration in Salesforce valid-heroku-esr-id

Example Response:

{
  "id": "valid-heroku-esr-id"
}

Get Publications By Connection

Get a list of AppLink publications for a connection.

GET /addons/${addon_uuid}/connections/salesforce/${conn_id_or_conn_name}/apps

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name string unique identifier or name of connection productionOrg

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/salesforce/my-prod-org/apps

Response Attributes

Name Type Description Example
app_id string unique identifier of app a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
heroku_applink_id string unique identifier of HerokuAppLink record in Salesforce 1up000000000000
external_service_id string unique identifier of external service registration in Salesforce 0Lexx0000004H77CAE
external_service_name string name of external service registration in Salesforce ESR.DeveloperName
connection_name string name of org app is published to productionOrg
org_id string unique identifier of org that app is published to 00DSG00000DGEIr2AP
app_name string name of app app-name
created_at date when connection was created 2025-04-06T18:20:42.226577Z
created_by string unique email address of user who created connection foo@heroku.com
last_modified_at date when connection was last modified 2025-04-09T18:20:42.226577Z
last_modified_by string unique email address of user who last modified connection bar@heroku.com

Example Response:

[
  {
    "app_id": "1c6bb699-2a91-47b3-b55e-8f2e37254684",
    "heroku_app_link_id": "1up000000000000",
    "external_service_id": "0Lexx0000004H77CAE",
    "external_service_name": "MyApp",
    "connection_name": "my-prod-org",
    "org_id": "00DSG00000DGEIr2AP",
    "app_name": "app-name",
    "created_at": "2025-04-06T18:20:42.226577Z",
    "created_by": "creator@somewhere.com",
    "last_modified_at": "2025-04-09T18:20:42.226577Z",
    "last_modified_by": "modifier@somewhere.com",
  }
]

Get Publications by App

Get a list of AppLink publications for an app.

GET /addons/${addon_uuid}/connections/salesforce/${conn_id_or_conn_name}/apps/${app_uuid}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name string unique identifier or name of connection productionOrg
app_uuid string unique identifier or name of app 1c6bb699-2a91-47b3-b55e-8f2e37254684

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/salesforce/my-prod-org/apps/1c6bb699-2a91-47b3-b55e-8f2e37254684

Response Attributes

Name Type Description Example
app_id string unique identifier of app a8bc7bcb-89c3-45c0-b7b7-4fb4427e598b
heroku_applink_id string unique identifier of HerokuAppLink record in Salesforce 1up000000000000
external_service_id string unique identifier of external service registration in Salesforce 0Lexx0000004H77CAE
external_service_name string name of external service registration in Salesforce ESR.DeveloperName
connection_name string name of org app is published to productionOrg
org_id string unique identifier of org that app is published to 00DSG00000DGEIr2AP
app_name string name of app app-name
created_at date when connection was created 2025-04-06T18:20:42.226577Z
created_by string unique email address of user who created connection foo@heroku.com
last_modified_at date when connection was last modified 2025-04-09T18:20:42.226577Z
last_modified_by string unique email address of user who last modified connection bar@heroku.com

Example Response:

[
  {
    "app_id": "1c6bb699-2a91-47b3-b55e-8f2e37254684",
    "heroku_app_link_id": "1up000000000000",
    "external_service_id": "0Lexx0000004H77CAE",
    "external_service_name": "MyApp",
    "connection_name": "my-prod-org",
    "org_id": "00DSG00000DGEIr2AP",
    "app_name": "app-name",
    "created_at": "2025-04-06T18:20:42.226577Z",
    "created_by": "creator@somewhere.com",
    "last_modified_at": "2025-04-09T18:20:42.226577Z",
    "last_modified_by": "modifier@somewhere.com",
  }
]

Delete Publications

Delete an AppLink publication.

DELETE /addons/${add_on_id_or_name}/connections/salesforce/${conn_id_or_conn_name}/apps/{app_uuid}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name string unique identifier or name of connection productionOrg
app_uuid string unique identifier or name of app 1c6bb699-2a91-47b3-b55e-8f2e37254684

Example Request:

DELETE /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/salesforce/my-prod-org/apps/1c6bb699-2a91-47b3-b55e-8f2e37254684

Example Response:

200 OK

Data Cloud Endpoints

Use these endpoints to create, get info, and maintain your Data Action Targets.

Create a Data Action Target

Create a Data Cloud Data Action Target on your AppLink add-on.

POST /addons/${addon_uuid}/connections/datacloud/conn_id_or_conn_name_or_org_id/data_action_targets

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name_or_org_id string unique identifier or name of connection or 18 character Salesforce org ID productionOrg
label string name for Data Action Target Customer Update Webhook
api_name string API name for Data Action Target customer_update_webhook
target_endpoint string endpoint for Data Action Target /webhooks/customer-update

Optional Parameters

Name Type Description Example
type string type of Data Action Target
default: Webhook
Webhook

Example Request:

POST /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/datacloud/productionOrg/data_action_targets

{
  "type": "Webhook",
  "label": "Customer Update Webhook",
  "api_name": "customer_update_webhook",
  "target_endpoint": "/webhooks/customer-update"
}

Response Attributes

Name Type Description Example
id string unique identifier of Data Action Target 550e8400-e29b-41d4-a716-446655440000
type string type of Data Action Target
one of: Webhook, Event
Webhook
label string name of Data Action Target Customer Update Webhook
api_name string API name of Data Action Target customer_update_webhook
state string state of Data Action Target Created
target_endpoint string endpoint of Data Action Target /webhooks/customer-update
connection_id string unique identifier of connection 123e4567-e89b-12d3-a456-426614174000
app_id string unique identifier of app 456e7890-e89b-12d3-a456-426614174001

Example Response:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "Webhook",
  "label": "My Webhook Target",
  "api_name": "my_webhook_target",
  "state": "Created",
  "target_endpoint": "/webhooks/my_webhook_target",
  "connection_id": "123e4567-e89b-12d3-a456-426614174000",
  "app_id": "456e7890-e89b-12d3-a456-426614174001"
}

Get Data Action Target Details

Get info on a Data Action Target.

GET /addons/${addon_uuid}/connections/datacloud/conn_id_or_conn_name_or_org_id/data_action_targets/{id_or_api_name}

Required Parameters

Name Type Description Example
addon_uuid string unique identifier or name of add-on fe3b4938-3383-4c40-868c-1a5cdc38a358
conn_id_or_conn_name_or_org_id string unique identifier or name of connection or 18 character Salesforce org ID productionOrg
id_or_api_name string unique identifier or API name of Data Action Target customer_update_webhook

Example Request:

GET /addons/fe3b4938-3383-4c40-868c-1a5cdc38a358/connections/datacloud/productionOrg/data_action_targets/customer_update_webhook

Response Attributes

Name Type Description Example
id string unique identifier of Data Action Target 550e8400-e29b-41d4-a716-446655440000
type string type of Data Action Target
one of: Webhook, Event
Webhook
label string name of Data Action Target Customer Update Webhook
api_name string API name of Data Action Target customer_update_webhook
state string state of Data Action Target Created
target_endpoint string endpoint of Data Action Target /webhooks/customer-update
connection_id string unique identifier of connection 123e4567-e89b-12d3-a456-426614174000
app_id string unique identifier of app 456e7890-e89b-12d3-a456-426614174001

Example Response:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "Webhook",
  "label": "My Webhook Target",
  "api_name": "my_webhook_target",
  "state": "Created",
  "target_endpoint": "/webhooks/my_webhook_target",
  "connection_id": "123e4567-e89b-12d3-a456-426614174000",
  "app_id": "456e7890-e89b-12d3-a456-426614174001"
}

Keep reading

  • Heroku AppLink Reference

Feedback

Log in to submit feedback.

Heroku AppLink Logging and Common Errors Heroku AppLink CLI Plugin

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices