Skip to content

Custom REST Connector

Connect a private HTTP API. Catalog id is custom-rest-api (webhooks and providerConfigKey on generate-webhook). Connect-session uses private-api-basic or private-api-bearer plus credentials. Sending integration: "custom-rest-api" or providerConfigKey: "custom-rest-api" on connect-session returns 400.

Base URL

BASE_URL = "https://api.fermi.dev/public/v1"

Authentication

Authorization: Bearer <service-actor-token>

Required Scopes: connectors:read, connectors:write, connectors:sync

Connect with bearer token

POST /connect/integrations/connect-session

{
  "providerConfigKey": "private-api-bearer",
  "credentials": {
    "bearerToken": "YOUR_API_TOKEN",
    "authType": "BEARER_TOKEN"
  },
  "metadata": {
    "connectionName": "Inventory API"
  }
}

credentials.apiKeyValue or top-level password are also accepted as the token.

Connect with basic auth

{
  "providerConfigKey": "private-api-basic",
  "username": "api-user",
  "password": "api-password",
  "credentials": {
    "authType": "BASIC"
  },
  "metadata": {
    "connectionName": "Inventory API"
  }
}

authType: "NONE" stores empty basic credentials.

Generate inbound webhook

POST /webhooks/api-connector/generate

{
  "connectionId": "CONNECTION_ID",
  "providerConfigKey": "custom-rest-api",
  "organizationId": "ORG_ID"
}

Response: { "success", "webhookEndpoint", "apiKey", "connectionId", "providerConfigKey", "organizationId" }

Inbound POSTs go to /webhooks/api-connector/receive/{connectionId} with Authorization: Bearer <apiKey> from generate. Partners do not POST this URL with a service-actor token (live 401).

GET /webhooks/api-connector/info?connectionId=&providerConfigKey= returns stored webhook info.

Summary

Method Path
POST /connect/integrations/connect-session
POST /webhooks/api-connector/generate
POST /webhooks/api-connector/receive/{connectionId}
GET /webhooks/api-connector/info

Next Steps