Start typing to search.

API Reference

Introspect connector resources

View Markdown

Returns available resources (tables, collections, entities, files) and optionally column/field schema for a specific resource.

POST /api/connectors/{id}/introspect

Returns available resources (tables, collections, entities, files) and optionally column/field schema for a specific resource.

Operation ID: introspectConnector

Authentication

Option 1

  • BearerAuth (http bearer) API key token. Create via POST /api/api-keys. Format: envoy_<hex>

Option 2

  • CookieAuth (apiKey) Session cookie set after login + TOTP verification

Path parameters

  • idinteger, required Resource ID

Request body

application/json

  • Type: object
  • Properties:
    • resource (string) — If provided, returns column info for this resource instead of listing resources
    • integrated_account_id (string) — Truto only — integrated account whose resources to list
    • surface (string) — Truto only — capability surface filter
      • Description: Truto only — capability surface filter
      • Allowed values: all, unified, proxy
    • delimiter (string) — CSV only — field delimiter/separator override for column introspection. Use "\t" or "tab" for tab-separated files.
    • separator (string) — CSV only — alias for delimiter.
    • limit (integer) — Truto account list page size (default 50)
    • cursor (string) — Truto account list pagination cursor (next_cursor token)
    • q (string) — Truto account list search (id prefix or tenant_id substring)
    • integration (string) — Truto account list filter by integration name (e.g. gorgias)
    • refresh (boolean) — Dynamics 365 only — discard the connector's cached entity metadata and refetch the schema from the D365 metadata API

Success responses

200

Introspection result

Content type: application/json

  • Type: object
  • Properties:
    • resources (array<object>)
      • Items:
        • Type: object
        • Properties:
          • name (string)
          • type (string)
    • columns (array<object>)
      • Items:
        • Type: object
        • Properties:
          • name (string)
          • type (string)
          • nullable (boolean)
    • accounts (array<object>)
      • Items:
        • Type: object
        • Properties:
          • id (string)
          • label (string | null)
            • Nullable: yes
          • tenant_id (string)
          • integration_name (string)
          • status (string | null)
            • Nullable: yes
    • next_cursor (string | null) — Truto integrated account list — cursor for the next page
      • Description: Truto integrated account list — cursor for the next page
      • Nullable: yes
    • fallback (boolean) — True when resources is a hardcoded fallback list because the live schema fetch failed (Dynamics 365)
    • schema_error (string) — Error message from the underlying schema fetch when it failed (Dynamics 365)

Error responses

404

Resource not found

Content type: application/json

  • Reference: Error
    • Type: object
    • Properties:
      • error (string)
        • Example: NOT_FOUND
      • message (string)
        • Example: Resource not found

Example:

{
  "error": "NOT_FOUND",
  "message": "Resource not found"
}

500

Introspection failed

Examples

cURL

curl --request POST \
  --url 'https://your-envoy.example.com/api/connectors/YOUR_ID/introspect' \
  --header 'Authorization: Bearer $API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "resource": "string",
  "integrated_account_id": "string",
  "surface": "all",
  "delimiter": "string",
  "separator": "string"
}'

JavaScript (fetch)

const response = await fetch('https://your-envoy.example.com/api/connectors/YOUR_ID/introspect', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "resource": "string",
    "integrated_account_id": "string",
    "surface": "all",
    "delimiter": "string",
    "separator": "string"
  }),
});
 
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = response.status === 204 ? null : await response.json();
console.log(data);