Skip to main content
GET
/
api
/
v2
/
public
/
application
curl -X GET "https://app.refold.ai/api/v2/public/application" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "linked_account_id: YOUR_LINKED_ACCOUNT_ID"
[
  {
    "name": "Hubspot",
    "icon": "https://cobalt-app-logos.s3.ap-south-1.amazonaws.com/hubspot/logo.png",
    "description": "HubSpot is your all-in-one stop for all of your marketing software needs.",
    "auth_type": "oauth2",
    "type": "hubspot",
    "app_id": "6992cc7dc124a392c80e9e9c",
    "tags": ["CRM"],
    "ecosystem": false,
    "slug": "hubspot",
    "auth_type_options": { "oauth2": [] },
    "auth_input_map": [],
    "connected": true,
    "connected_accounts": [
      {
        "identifier": {
          "portalId": 12345678,
          "appId": 1234567,
          "userId": 87654321,
          "hub_domain": "your-domain-12345678.com"
        },
        "connectedAt": "2026-04-28T12:13:25.968Z",
        "status": "active",
        "auth_type": "oauth2"
      }
    ],
    "reauth_required": false
  },
  {
    "name": "Netsuite",
    "icon": "https://cobalt-app-logos.s3.ap-south-1.amazonaws.com/netsuite/logo.png",
    "description": "NetSuite is a business technology vendor whose portfolio includes ERP, financial management, e-commerce, CRM and PSA applications.",
    "auth_type": "keybased",
    "type": "netsuite",
    "app_id": "6992cc7dc124a392c80e9c1c",
    "tags": ["Accounting"],
    "ecosystem": false,
    "slug": "netsuite",
    "auth_type_options": {
      "keybased": [
        { "name": "account_id", "label": "Account Id", "placeholder": "Please enter the Account Id", "required": true, "type": "text" },
        { "name": "consumer_key", "label": "Consumer Key", "placeholder": "Please enter the Consumer Key", "required": true, "type": "text" },
        { "name": "token_id", "label": "Token Id", "placeholder": "Please enter the Token Id", "required": true, "type": "text" },
        { "name": "token_secret", "label": "Token Secret", "placeholder": "Please enter the Token Secret", "required": true, "type": "password" }
      ],
      "oauth2": []
    },
    "auth_input_map": [
      { "name": "account_id", "label": "Account Id", "placeholder": "Please enter the Account Id", "required": true, "type": "text" },
      { "name": "consumer_key", "label": "Consumer Key", "placeholder": "Please enter the Consumer Key", "required": true, "type": "text" },
      { "name": "token_id", "label": "Token Id", "placeholder": "Please enter the Token Id", "required": true, "type": "text" },
      { "name": "token_secret", "label": "Token Secret", "placeholder": "Please enter the Token Secret", "required": true, "type": "password" }
    ],
    "reauth_required": false
  }
]
Retrieve every application enabled for your organization and environment, enriched with the connection status for a specific linked account. Use this to build a custom integration catalog showing which apps are available and which the customer has already connected. The org’s default custom application is excluded from the results.

Authentication

x-api-key
string
required
Your Refold API key. Find it in Settings → Credentials.
linked_account_id
string
required
The unique identifier for the linked account. Can also be passed as a query parameter, but the header takes precedence.Example: cobalt_test_user

Query Parameters

slug
string
Filter to a single application by its slug. When set, the response is a single application object instead of an array.
tags
string
Filter applications by category tag (e.g. CRM).
auth_type
string
Filter by authentication type, e.g. oauth2 or keybased.
ecosystem
string
Filter by ecosystem flag. Accepts true or false.

Response

Returns an array of application objects (or a single object when slug is supplied).
name
string
Application display name.
icon
string
URL to the application’s logo.
description
string
Application description. Not present for every app.
auth_type
string
Authentication type: oauth2 or keybased.
type
string
Application type identifier.
app_id
string
Internal application record ID.
slug
string
Application slug used in API calls.
tags
array
Category tags (e.g. CRM, Communication).
auth_type_options
object
Per-auth-type configuration. For keybased apps, holds the array of credential input fields.
auth_input_map
array
Input fields for key-based authentication. Only populated for keybased apps.
connected
boolean
Whether the linked account has connected this application. Only present when connected.
connected_accounts
array
Details of the linked account’s connections to this app. Only present when connected.
reauth_required
boolean
Whether the connection needs re-authentication.
[
  {
    "name": "Hubspot",
    "icon": "https://cobalt-app-logos.s3.ap-south-1.amazonaws.com/hubspot/logo.png",
    "description": "HubSpot is your all-in-one stop for all of your marketing software needs.",
    "auth_type": "oauth2",
    "type": "hubspot",
    "app_id": "6992cc7dc124a392c80e9e9c",
    "tags": ["CRM"],
    "ecosystem": false,
    "slug": "hubspot",
    "auth_type_options": { "oauth2": [] },
    "auth_input_map": [],
    "connected": true,
    "connected_accounts": [
      {
        "identifier": {
          "portalId": 12345678,
          "appId": 1234567,
          "userId": 87654321,
          "hub_domain": "your-domain-12345678.com"
        },
        "connectedAt": "2026-04-28T12:13:25.968Z",
        "status": "active",
        "auth_type": "oauth2"
      }
    ],
    "reauth_required": false
  },
  {
    "name": "Netsuite",
    "icon": "https://cobalt-app-logos.s3.ap-south-1.amazonaws.com/netsuite/logo.png",
    "description": "NetSuite is a business technology vendor whose portfolio includes ERP, financial management, e-commerce, CRM and PSA applications.",
    "auth_type": "keybased",
    "type": "netsuite",
    "app_id": "6992cc7dc124a392c80e9c1c",
    "tags": ["Accounting"],
    "ecosystem": false,
    "slug": "netsuite",
    "auth_type_options": {
      "keybased": [
        { "name": "account_id", "label": "Account Id", "placeholder": "Please enter the Account Id", "required": true, "type": "text" },
        { "name": "consumer_key", "label": "Consumer Key", "placeholder": "Please enter the Consumer Key", "required": true, "type": "text" },
        { "name": "token_id", "label": "Token Id", "placeholder": "Please enter the Token Id", "required": true, "type": "text" },
        { "name": "token_secret", "label": "Token Secret", "placeholder": "Please enter the Token Secret", "required": true, "type": "password" }
      ],
      "oauth2": []
    },
    "auth_input_map": [
      { "name": "account_id", "label": "Account Id", "placeholder": "Please enter the Account Id", "required": true, "type": "text" },
      { "name": "consumer_key", "label": "Consumer Key", "placeholder": "Please enter the Consumer Key", "required": true, "type": "text" },
      { "name": "token_id", "label": "Token Id", "placeholder": "Please enter the Token Id", "required": true, "type": "text" },
      { "name": "token_secret", "label": "Token Secret", "placeholder": "Please enter the Token Secret", "required": true, "type": "password" }
    ],
    "reauth_required": false
  }
]
curl -X GET "https://app.refold.ai/api/v2/public/application" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "linked_account_id: YOUR_LINKED_ACCOUNT_ID"

Example: Build an integration catalog

async function listApplications(linkedAccountId, apiKey) {
  const response = await fetch(
    'https://app.refold.ai/api/v2/public/application',
    {
      headers: {
        'x-api-key': apiKey,
        'linked_account_id': linkedAccountId
      }
    }
  );

  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.message);
  }

  return response.json();
}

// Usage: split connected vs available, group by category
const apps = await listApplications('YOUR_LINKED_ACCOUNT_ID', 'YOUR_API_KEY');

const connectedApps = apps.filter(app => app.connected);
const availableApps = apps.filter(app => !app.connected);
console.log(`Connected: ${connectedApps.length}, Available: ${availableApps.length}`);

const byCategory = apps.reduce((acc, app) => {
  const category = (app.tags && app.tags[0]) || 'Other';
  (acc[category] = acc[category] || []).push(app);
  return acc;
}, {});
console.log('Apps by category:', Object.keys(byCategory));

Example: Find apps needing re-authentication

async function getAppsNeedingReauth(linkedAccountId, apiKey) {
  const apps = await listApplications(linkedAccountId, apiKey);
  return apps.filter(app => app.connected && app.reauth_required);
}

const reauthApps = await getAppsNeedingReauth('YOUR_LINKED_ACCOUNT_ID', 'YOUR_API_KEY');
if (reauthApps.length > 0) {
  console.log('These apps need re-authentication:');
  reauthApps.forEach(app => console.log(`- ${app.name} (${app.slug})`));
}