Skip to main content
GET
/
api
/
v2
/
public
/
application
/
:slug
curl -X GET "https://app.refold.ai/api/v2/public/application/{slug}" \
  -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
}
Retrieve detailed information about a single application by its slug. Returns the same shape as List Applications, but as a single object — including connection status, authentication requirements, and connected-account details for the linked account.

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.Example: cobalt_test_user

Path Parameters

slug
string
required
The application slug.Example: hubspot, netsuite, slack

Response

Returns the application object. The exact fields differ by auth_type — see the two response examples (OAuth vs. key-based).
name
string
Application display name.
icon
string
URL to the application’s logo.
description
string
Application description.
auth_type
string
Default authentication type: oauth2 or keybased.
type
string
Application type identifier.
app_id
string
Internal application record ID.
slug
string
Application slug.
tags
array
Category tags.
ecosystem
boolean
Whether the app is part of the ecosystem catalog.
auth_type_options
object
Supported auth types and their configuration. Each key (oauth2, keybased) maps to its credential input fields. An app can support more than one.
auth_input_map
array
Credential input fields for key-based authentication. Populated for apps that support keybased auth.
connected
boolean
Whether the linked account has connected this application. Only present when connected.
connected_accounts
array
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
}
curl -X GET "https://app.refold.ai/api/v2/public/application/{slug}" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "linked_account_id: YOUR_LINKED_ACCOUNT_ID"

Example: Check connection status

async function getApplication(slug, linkedAccountId, apiKey) {
  const response = await fetch(
    `https://app.refold.ai/api/v2/public/application/${slug}`,
    {
      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
const app = await getApplication('YOUR_APP_SLUG', 'YOUR_LINKED_ACCOUNT_ID', 'YOUR_API_KEY');

if (app.connected) {
  console.log(`Connected at: ${app.connected_accounts[0].connectedAt}`);
} else {
  console.log(`${app.name} is not connected`);
}

if (app.reauth_required) {
  console.log('Warning: re-authentication required');
}

Example: Build an auth form for key-based apps

async function getAuthFields(slug, linkedAccountId, apiKey) {
  const app = await getApplication(slug, linkedAccountId, apiKey);

  if (app.auth_type !== 'keybased') {
    return { type: 'oauth', app };
  }

  return {
    type: 'keybased',
    app,
    fields: (app.auth_input_map || []).map(field => ({
      name: field.name,
      label: field.label,
      placeholder: field.placeholder,
      required: field.required,
      inputType: field.type
    }))
  };
}

const authInfo = await getAuthFields('YOUR_APP_SLUG', 'YOUR_LINKED_ACCOUNT_ID', 'YOUR_API_KEY');
if (authInfo.type === 'keybased') {
  authInfo.fields.forEach(f => console.log(`- ${f.label} (${f.required ? 'required' : 'optional'})`));
}