FruxonDocs
IntegrationsConfigs

Removes a resource from this config's recorded grants.

Fruxon's list is a mirror, so this does <b>not</b> revoke anything at the provider — Google keeps its `drive.file` grant until the user removes Fruxon's access from their Google account. The honest reading is "stop claiming we have this", not "we no longer do".

DELETE
/v1/tenants/{tenant}/integrations/{integration}/configs/{config}/resources/{resource}
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

integration*string

The integration ID.

config*string

The configuration ID.

Formatuuid
resource*string

Provider-native resource ID to forget.

tenant*string

The tenant identifier

Response Body

curl -X DELETE "https://api.fruxon.com/v1/tenants/string/integrations/string/configs/497f6eca-6276-4993-bfeb-53cbbbba6f08/resources/string"
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

Tells the external provider to stop delivering to the webhook URL Fruxon registered for this config — the un-install counterpart to `:applyWebhookToProvider`.

Lets an operator wind a channel down without leaving Fruxon to clear the webhook in BotFather / the provider hub. Providers with a programmatic deregistration API (Telegram `deleteWebhook` today) get a single-click disconnect; providers without one return 400 and the FE hides the affordance, exactly like the installer/inspector. No request body — removal needs no URL; it clears whatever the provider currently has registered for this config's credentials. This only stops the provider from sending; it does not delete Fruxon's webhook key (rotate/regenerate for that) or any trigger wiring. Returns 200 with `removed=false` + `errorMessage` when the provider rejects (auth failure, rate limit, network error) — the FE surfaces the message inline.

Records that the operator granted this config's connected account access to one provider-side resource — a file or folder chosen in the provider's picker.

Needed for scopes that don't determine reach on their own: Google's `drive.file` grants access to nothing except files Fruxon created or the user explicitly picked, so without this list such a connection can't touch a single pre-existing file. This mirrors a grant that actually lives at the provider — picking the file in the Picker is what grants it; this call records that it happened so the config page can show it and, later, so a tool call can pre-flight against it. Recording a resource here does <b>not</b> grant anything, and re-posting an existing id refreshes its stored name rather than erroring. Deliberately separate from the anonymous `oauth/authentication-completed` callback, which records the same fact from the mid-run OAuth redirect and is keyed on an encrypted flow token. This one is an authenticated operator action against a specific config.