Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection’s to remove, and saying more would confirm it exists elsewhere.
The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.
An organization-scoped API key, minted in control under Settings → API keys. Every failure to authenticate answers one identical 401: "Provide a valid organization-scoped API key or an active session." Each operation names the one scope it is filed under, <resource>:<read|write>, where the resource is the first path segment after /api/v1/; a key minted today carries all 22 of them. Scopes are RECORDED — on the key and on every audit row — and are not yet enforced: no request is refused for want of one.
The hostname to stop injecting on, canonicalized the same way it was when added. A host mapped to a different connection answers 404 — it is not this one's to remove.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ergoly","description":"How to manage your agency on Ergoly","colors":{"primary":"#079b9b","light":"#3cd3cf","dark":"#0f7170"},"logo":{"light":"https://mintcdn.com/ergoly/-drdYd6uXChmiNIn/logo/light.png?fit=max\u0026auto=format\u0026n=-drdYd6uXChmiNIn\u0026q=85\u0026s=a9084e9caaf8656a821bf02426e31c05","dark":"https://mintcdn.com/ergoly/-drdYd6uXChmiNIn/logo/dark.png?fit=max\u0026auto=format\u0026n=-drdYd6uXChmiNIn\u0026q=85\u0026s=2c7c39ae6542910294a1183134fda8ff","href":"https://www.ergoly.ai"},"favicon":"https://mintcdn.com/ergoly/-drdYd6uXChmiNIn/favicon.png?fit=max\u0026auto=format\u0026n=-drdYd6uXChmiNIn\u0026q=85\u0026s=9e5baceff3d9e2c0f0d473b3a7c5d40b","api":{"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required","languages":["curl","javascript","python"]}},"background":{"color":{"light":"#f2f3f3","dark":"#282828"}},"navbar":{"links":[{"href":"https://www.ergoly.ai/support","label":"Support"}],"primary":{"type":"button","label":"Sign in","href":"https://control.ergoly.ai/"}},"footer":{"socials":{"website":"https://www.ergoly.ai","linkedin":"https://www.linkedin.com/company/ergoly","github":"https://github.com/ergoly-ai"}},"seo":{"metatags":{"canonical":"https://docs.ergoly.ai"}},"fonts":{"family":"Satoshi","source":"fonts/Satoshi-Variable.woff2","format":"woff2"},"banner":{"content":"Ergoly is hiring. \u003ca href=\"https://www.ergoly.ai/jobs\">Apply today\u003c/a>.","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ergoly","hasAudioNarration":false,"actualSubdomain":"ergoly","customDomains":["docs.ergoly.ai"],"gitSource":{"type":"github","owner":"ergoly-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6af1063edce746e0972c5b68"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1344bc7dcf404baff164b","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API","count":72},{"language":"default","tag":"Docs","count":49},{"language":"default","tag":"Workers","count":33},{"language":"default","tag":"Connections","count":26},{"language":"default","tag":"Channels","count":14},{"language":"default","tag":"Changelog","count":12},{"language":"default","tag":"Releases","count":12},{"language":"default","tag":"Tasks","count":11},{"language":"default","tag":"Clients","count":9},{"language":"default","tag":"Company","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/connections/remove-a-host","slug":"/api-reference/connections/remove-a-host","pageMetadata":{"title":"Remove a host","description":"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection's to remove, and saying more would confirm it exists elsewhere.\n\n**The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.**","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connections/{id}/hosts/{host}","href":"/api-reference/connections/remove-a-host","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection’s to remove, and saying more would confirm it exists elsewhere.\"\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.\"\n })\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Remove a host","description":"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection's to remove, and saying more would confirm it exists elsewhere.\n\n**The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.**","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connections/{id}/hosts/{host}","href":"/api-reference/connections/remove-a-host","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"removeConnectionHost","summary":"Remove a host","description":"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection's to remove, and saying more would confirm it exists elsewhere.\n\n**The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.**","tags":["connections"],"security":["a2cf5d86-3c9d-4a8c-948d-fd9f411a39ce"],"parameters":["abee316c-bef2-4dab-afb8-7384bfd2cace","42f4821b-b045-4f68-9e59-661cd7abf946"],"responses":{"200":"eeabdd9b-c661-4b8c-bf3a-373375638331","400":"288d4094-305e-4f40-9de5-99b966d8935a","401":"d9da90a6-35d7-4996-b176-c8a8d56cd3fb","404":"bede4c8f-2818-412d-b909-0c8d7d21e32d","409":"f4d6a081-7646-4b09-84cb-90691aad0096","429":"86f06200-0083-42b0-9608-0d07665ddbf6"},"method":"delete","type":"path","servers":["15355b2c-94fb-418f-acf2-2e27904062bb"],"path":"/api/v1/connections/{id}/hosts/{host}","baseUrlOptions":["https://control.ergoly.ai"],"title":"Remove a host","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"abee316c-bef2-4dab-afb8-7384bfd2cace":{"name":"id","in":"path","required":true,"description":"The connection to stop injecting. A malformed id answers 404, exactly as another organization's well-formed id does.","schema":{"type":"string","description":"The connection to stop injecting. A malformed id answers 404, exactly as another organization's well-formed id does.","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"42f4821b-b045-4f68-9e59-661cd7abf946":{"name":"host","in":"path","required":true,"description":"The hostname to stop injecting on, canonicalized the same way it was when added. A host mapped to a different connection answers 404 — it is not this one's to remove.","schema":{"type":"string","description":"The hostname to stop injecting on, canonicalized the same way it was when added. A host mapped to a different connection answers 404 — it is not this one's to remove.","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"responses":{"eeabdd9b-c661-4b8c-bf3a-373375638331":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The connection's id.","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"key":{"type":"string","description":"The slug the agent and the egress gateway know it by.","isRequired":true,"uniqueKey":"data.key","typeLabel":"string"},"kind":{"type":"string","description":"`api_key`, `secret`, `basic`, `oauth` or `oauth-app`.","isRequired":true,"uniqueKey":"data.kind","typeLabel":"string"},"type":{"type":"string","enum":["secret","oauth","provider-app","mcp"],"description":"Which family this is. Decides which of the state fields below are set.","isRequired":true,"uniqueKey":"data.type","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["org","worker","client"],"description":"Which identities resolve it. Most specific wins: client, then worker, then org.","isRequired":true,"uniqueKey":"data.scope","typeLabel":"enum\u003cstring>"},"workerId":{"oneOf":[{"type":"string","description":"The Worker it is scoped to, when `scope` is `worker`.","isRequired":true,"uniqueKey":"data.workerId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The Worker it is scoped to, when `scope` is `worker`.","isRequired":true,"uniqueKey":"data.workerId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.workerId","typeLabel":"string | null"},"clientId":{"oneOf":[{"type":"string","description":"The Client it is scoped to, when `scope` is `client`.","isRequired":true,"uniqueKey":"data.clientId.oneOf.0","typeLabel":"string"},{"type":"null","description":"The Client it is scoped to, when `scope` is `client`.","isRequired":true,"uniqueKey":"data.clientId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.clientId","typeLabel":"string | null"},"internalOnly":{"type":"boolean","description":"Hidden from client-tier eworks. Never true on a client-scoped connection.","isRequired":true,"uniqueKey":"data.internalOnly","typeLabel":"boolean"},"managed":{"type":"boolean","description":"System-managed. Readable, never modifiable.","isRequired":true,"uniqueKey":"data.managed","typeLabel":"boolean"},"hosts":{"type":"array","items":{"type":"string","description":"A hostname.","uniqueKey":"data.hosts.items.[INDEX]","typeLabel":"string"},"description":"Hostnames the egress gateway injects this credential on. A connection with no host is never injected.","isRequired":true,"uniqueKey":"data.hosts","typeLabel":"string[]"},"description":{"oneOf":[{"type":"string","description":"What this connection is for, in an operator's own words. Carried to a worker in the per-turn connections index, where it is the only thing that can say a connection named `lemlist` is how LinkedIn outreach gets done. Null when nobody wrote one.","isRequired":true,"uniqueKey":"data.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"What this connection is for, in an operator's own words. Carried to a worker in the per-turn connections index, where it is the only thing that can say a connection named `lemlist` is how LinkedIn outreach gets done. Null when nobody wrote one.","isRequired":true,"uniqueKey":"data.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.description","typeLabel":"string | null"},"provider":{"oneOf":[{"type":"string","description":"Provider id, for an OAuth account, provider app or MCP server.","isRequired":true,"uniqueKey":"data.provider.oneOf.0","typeLabel":"string"},{"type":"null","description":"Provider id, for an OAuth account, provider app or MCP server.","isRequired":true,"uniqueKey":"data.provider.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.provider","typeLabel":"string | null"},"account":{"oneOf":[{"type":"string","description":"The connected account's label, as the provider reported it.","isRequired":true,"uniqueKey":"data.account.oneOf.0","typeLabel":"string"},{"type":"null","description":"The connected account's label, as the provider reported it.","isRequired":true,"uniqueKey":"data.account.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.account","typeLabel":"string | null"},"providerScopes":{"type":"array","items":{"type":"string","description":"A scope.","uniqueKey":"data.providerScopes.items.[INDEX]","typeLabel":"string"},"description":"OAuth scopes the provider granted.","isRequired":true,"uniqueKey":"data.providerScopes","typeLabel":"string[]"},"expiresAt":{"oneOf":[{"type":"string","format":"date-time","description":"When the access token expires, if the provider said.","isRequired":true,"uniqueKey":"data.expiresAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the access token expires, if the provider said.","isRequired":true,"uniqueKey":"data.expiresAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.expiresAt","typeLabel":"string\u003cdate-time> | null"},"health":{"oneOf":[{"type":"string","description":"`healthy`, `expiring`, `expired` or `unknown`.","isRequired":true,"uniqueKey":"data.health.oneOf.0","typeLabel":"string"},{"type":"null","description":"`healthy`, `expiring`, `expired` or `unknown`.","isRequired":true,"uniqueKey":"data.health.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.health","typeLabel":"string | null"},"issuer":{"oneOf":[{"type":"string","description":"An MCP server's canonical identity.","isRequired":true,"uniqueKey":"data.issuer.oneOf.0","typeLabel":"string"},{"type":"null","description":"An MCP server's canonical identity.","isRequired":true,"uniqueKey":"data.issuer.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.issuer","typeLabel":"string | null"},"issuerHost":{"oneOf":[{"type":"string","description":"That issuer's host — what an operator recognises.","isRequired":true,"uniqueKey":"data.issuerHost.oneOf.0","typeLabel":"string"},{"type":"null","description":"That issuer's host — what an operator recognises.","isRequired":true,"uniqueKey":"data.issuerHost.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.issuerHost","typeLabel":"string | null"},"mcpEndpoint":{"oneOf":[{"type":"string","description":"Where the agent POSTs MCP calls.","isRequired":true,"uniqueKey":"data.mcpEndpoint.oneOf.0","typeLabel":"string"},{"type":"null","description":"Where the agent POSTs MCP calls.","isRequired":true,"uniqueKey":"data.mcpEndpoint.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mcpEndpoint","typeLabel":"string | null"},"mcpTransport":{"oneOf":[{"type":"string","description":"The observed MCP transport, or `unknown`.","isRequired":true,"uniqueKey":"data.mcpTransport.oneOf.0","typeLabel":"string"},{"type":"null","description":"The observed MCP transport, or `unknown`.","isRequired":true,"uniqueKey":"data.mcpTransport.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mcpTransport","typeLabel":"string | null"},"mcpTools":{"type":"array","items":{"type":"string","description":"A tool name.","uniqueKey":"data.mcpTools.items.[INDEX]","typeLabel":"string"},"description":"Tools advertised at the last handshake.","isRequired":true,"uniqueKey":"data.mcpTools","typeLabel":"string[]"},"mcpStatus":{"oneOf":[{"type":"string","description":"`ok`, `failed`, `pending`, or `needs_reconnect` — the last meaning no endpoint was ever recorded, so it cannot work until it is connected again.","isRequired":true,"uniqueKey":"data.mcpStatus.oneOf.0","typeLabel":"string"},{"type":"null","description":"`ok`, `failed`, `pending`, or `needs_reconnect` — the last meaning no endpoint was ever recorded, so it cannot work until it is connected again.","isRequired":true,"uniqueKey":"data.mcpStatus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mcpStatus","typeLabel":"string | null"},"mcpServerName":{"oneOf":[{"type":"string","description":"The server's own product name, when it supplied one.","isRequired":true,"uniqueKey":"data.mcpServerName.oneOf.0","typeLabel":"string"},{"type":"null","description":"The server's own product name, when it supplied one.","isRequired":true,"uniqueKey":"data.mcpServerName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.mcpServerName","typeLabel":"string | null"},"providerClientId":{"oneOf":[{"type":"string","description":"A provider app's PUBLIC OAuth client id. Its client secret has no field here.","isRequired":true,"uniqueKey":"data.providerClientId.oneOf.0","typeLabel":"string"},{"type":"null","description":"A provider app's PUBLIC OAuth client id. Its client secret has no field here.","isRequired":true,"uniqueKey":"data.providerClientId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.providerClientId","typeLabel":"string | null"},"redirectUri":{"oneOf":[{"type":"string","description":"The redirect URI Ergoly derives for this provider.","isRequired":true,"uniqueKey":"data.redirectUri.oneOf.0","typeLabel":"string"},{"type":"null","description":"The redirect URI Ergoly derives for this provider.","isRequired":true,"uniqueKey":"data.redirectUri.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.redirectUri","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","description":"When it was created.","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When it last changed.","isRequired":true,"uniqueKey":"data.updatedAt","typeLabel":"string\u003cdate-time>"}},"required":["id","key","kind","type","scope","workerId","clientId","internalOnly","managed","hosts","description","provider","account","providerScopes","expiresAt","health","issuer","issuerHost","mcpEndpoint","mcpTransport","mcpTools","mcpStatus","mcpServerName","providerClientId","redirectUri","createdAt","updatedAt"],"additionalProperties":false,"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"data":{"id":"6d5c4b3a-2918-4706-9f8e-1d2c3b4a5968","key":"stripe_live","kind":"api_key","type":"secret","scope":"org","workerId":null,"clientId":null,"internalOnly":false,"managed":false,"hosts":["api.stripe.com"],"description":"Billing — subscriptions, invoices and refunds.","provider":null,"account":null,"providerScopes":[],"expiresAt":null,"health":null,"issuer":null,"issuerHost":null,"mcpEndpoint":null,"mcpTransport":null,"mcpTools":[],"mcpStatus":null,"mcpServerName":null,"providerClientId":null,"redirectUri":null,"createdAt":"2026-02-01T09:14:00.000Z","updatedAt":"2026-02-01T09:14:00.000Z"}},"examples":{"Example":{"title":"Example","value":{"data":{"id":"6d5c4b3a-2918-4706-9f8e-1d2c3b4a5968","key":"stripe_live","kind":"api_key","type":"secret","scope":"org","workerId":null,"clientId":null,"internalOnly":false,"managed":false,"hosts":["api.stripe.com"],"description":"Billing — subscriptions, invoices and refunds.","provider":null,"account":null,"providerScopes":[],"expiresAt":null,"health":null,"issuer":null,"issuerHost":null,"mcpEndpoint":null,"mcpTransport":null,"mcpTools":[],"mcpStatus":null,"mcpServerName":null,"providerClientId":null,"redirectUri":null,"createdAt":"2026-02-01T09:14:00.000Z","updatedAt":"2026-02-01T09:14:00.000Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"288d4094-305e-4f40-9de5-99b966d8935a":{"description":"`invalid_request`","content":{"application/json":{"schema":{"type":"object","description":"The one error shape. Every refusal in this namespace has it.","properties":{"error":{"type":"object","description":"The refusal.","properties":{"code":{"type":"string","enum":["unauthorized","not_found","invalid_request","conflict","quota_exceeded","rate_limited","upstream_error","gone"],"description":"The machine-stable half. Branch on this, never on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Prose for a human reading a terminal.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"docs":{"type":"string","description":"Where to learn how to authenticate. Present on `unauthorized` and on nothing else — it is the one refusal a caller can reach with no credential at all, so it is the one that has to say where the way in is.","uniqueKey":"error.docs","typeLabel":"string"}},"required":["code","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"\u003cstring>","docs":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"d9da90a6-35d7-4996-b176-c8a8d56cd3fb":{"description":"`unauthorized`","content":{"application/json":{"schema":{"type":"object","description":"The one error shape. Every refusal in this namespace has it.","properties":{"error":{"type":"object","description":"The refusal.","properties":{"code":{"type":"string","enum":["unauthorized","not_found","invalid_request","conflict","quota_exceeded","rate_limited","upstream_error","gone"],"description":"The machine-stable half. Branch on this, never on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Prose for a human reading a terminal.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"docs":{"type":"string","description":"Where to learn how to authenticate. Present on `unauthorized` and on nothing else — it is the one refusal a caller can reach with no credential at all, so it is the one that has to say where the way in is.","uniqueKey":"error.docs","typeLabel":"string"}},"required":["code","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"\u003cstring>","docs":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"bede4c8f-2818-412d-b909-0c8d7d21e32d":{"description":"`not_found`","content":{"application/json":{"schema":{"type":"object","description":"The one error shape. Every refusal in this namespace has it.","properties":{"error":{"type":"object","description":"The refusal.","properties":{"code":{"type":"string","enum":["unauthorized","not_found","invalid_request","conflict","quota_exceeded","rate_limited","upstream_error","gone"],"description":"The machine-stable half. Branch on this, never on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Prose for a human reading a terminal.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"docs":{"type":"string","description":"Where to learn how to authenticate. Present on `unauthorized` and on nothing else — it is the one refusal a caller can reach with no credential at all, so it is the one that has to say where the way in is.","uniqueKey":"error.docs","typeLabel":"string"}},"required":["code","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"\u003cstring>","docs":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f4d6a081-7646-4b09-84cb-90691aad0096":{"description":"`conflict`","content":{"application/json":{"schema":{"type":"object","description":"The one error shape. Every refusal in this namespace has it.","properties":{"error":{"type":"object","description":"The refusal.","properties":{"code":{"type":"string","enum":["unauthorized","not_found","invalid_request","conflict","quota_exceeded","rate_limited","upstream_error","gone"],"description":"The machine-stable half. Branch on this, never on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Prose for a human reading a terminal.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"docs":{"type":"string","description":"Where to learn how to authenticate. Present on `unauthorized` and on nothing else — it is the one refusal a caller can reach with no credential at all, so it is the one that has to say where the way in is.","uniqueKey":"error.docs","typeLabel":"string"}},"required":["code","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"\u003cstring>","docs":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"86f06200-0083-42b0-9608-0d07665ddbf6":{"description":"`rate_limited`","content":{"application/json":{"schema":{"type":"object","description":"The one error shape. Every refusal in this namespace has it.","properties":{"error":{"type":"object","description":"The refusal.","properties":{"code":{"type":"string","enum":["unauthorized","not_found","invalid_request","conflict","quota_exceeded","rate_limited","upstream_error","gone"],"description":"The machine-stable half. Branch on this, never on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Prose for a human reading a terminal.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"docs":{"type":"string","description":"Where to learn how to authenticate. Present on `unauthorized` and on nothing else — it is the one refusal a caller can reach with no credential at all, so it is the one that has to say where the way in is.","uniqueKey":"error.docs","typeLabel":"string"}},"required":["code","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"\u003cstring>","docs":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a2cf5d86-3c9d-4a8c-948d-fd9f411a39ce":{"orgApiKey":{"type":"http","scheme":"bearer","description":"An organization-scoped API key, minted in control under Settings → API keys. Every failure to authenticate answers one identical 401: \"Provide a valid organization-scoped API key or an active session.\" Each operation names the one scope it is filed under, `\u003cresource>:\u003cread|write>`, where the resource is the first path segment after `/api/v1/`; a key minted today carries all 22 of them. Scopes are RECORDED — on the key and on every audit row — and are not yet enforced: no request is refused for want of one.","scopes":["connections:write"],"schemeName":"orgApiKey"}}},"servers":{"15355b2c-94fb-418f-acf2-2e27904062bb":{"url":"https://control.ergoly.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An organization-scoped API key, minted in control under Settings → API keys. Every failure to authenticate answers one identical 401: \"Provide a valid organization-scoped API key or an active session.\" Each operation names the one scope it is filed under, `\u003cresource>:\u003cread|write>`, where the resource is the first path segment after `/api/v1/`; a key minted today carries all 22 of them. Scopes are RECORDED — on the key and on every audit row — and are not yet enforced: no request is refused for want of one.","scopes":["connections:write"],"schemeName":"orgApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An organization-scoped API key, minted in control under Settings → API keys. Every failure to authenticate answers one identical 401: \"Provide a valid organization-scoped API key or an active session.\" Each operation names the one scope it is filed under, `\u003cresource>:\u003cread|write>`, where the resource is the first path segment after `/api/v1/`; a key minted today carries all 22 of them. Scopes are RECORDED — on the key and on every audit row — and are not yet enforced: no request is refused for want of one.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"orgApiKey","name":"Authorization"}],"title":"orgApiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"ergoly","siteName":"Ergoly","title":"Remove a host - Ergoly","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T02:24:49.294Z","originalFileLocation":"api-reference/connections/remove-a-host.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection\u0026#x27;s to remove, and saying more would confirm it exists elsewhere. The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ergoly\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Remove a host - Ergoly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection\u0026#x27;s to remove, and saying more would confirm it exists elsewhere. The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ergoly\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ergoly.ai/api-reference/connections/remove-a-host\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ergoly.mintlify.site/_mintlify/api/og/v2?division=Hosts\u0026amp;title=Remove+a+host\u0026amp;description=Addressed+by+hostname%2C+canonicalized+the+same+way+it+was+when+added.+A+host+mapped+to+a+different+connection+answers+404+rather+than+a+refusal%3A+it+is+not+this+c\u0026amp;theme=46f41713e7d152b6296bdf32\u0026amp;signature=90e7583b85ab73446e8c3b8463a16793ba92f43ae641d398a1f2a3e9e5a7ee30\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Remove a host - Ergoly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection\u0026#x27;s to remove, and saying more would confirm it exists elsewhere. The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ergoly.mintlify.site/_mintlify/api/og/v2?division=Hosts\u0026amp;title=Remove+a+host\u0026amp;description=Addressed+by+hostname%2C+canonicalized+the+same+way+it+was+when+added.+A+host+mapped+to+a+different+connection+answers+404+rather+than+a+refusal%3A+it+is+not+this+c\u0026amp;theme=46f41713e7d152b6296bdf32\u0026amp;signature=90e7583b85ab73446e8c3b8463a16793ba92f43ae641d398a1f2a3e9e5a7ee30\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ergoly/OjkmtN-S1YevUC4M/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ergoly\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#079b9b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ergoly.ai/api-reference/connections/remove-a-host\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/connections/remove-a-host.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ergoly.ai/#organization\",\"name\":\"Ergoly\",\"url\":\"https://docs.ergoly.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ergoly/-drdYd6uXChmiNIn/logo/light.png?fit=max\u0026auto=format\u0026n=-drdYd6uXChmiNIn\u0026q=85\u0026s=a9084e9caaf8656a821bf02426e31c05\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ergoly.ai#website\",\"name\":\"Ergoly\",\"url\":\"https://docs.ergoly.ai\",\"publisher\":{\"@id\":\"https://docs.ergoly.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host#webpage\",\"url\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host\",\"name\":\"Remove a host\",\"description\":\"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection's to remove, and saying more would confirm it exists elsewhere. The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.\",\"dateModified\":\"2026-11-09T02:24:49.294Z\",\"isPartOf\":{\"@id\":\"https://docs.ergoly.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Connections\",\"item\":\"https://docs.ergoly.ai/api-reference/connections/list-connections\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hosts\",\"item\":\"https://docs.ergoly.ai/api-reference/connections/list-hosts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Remove a host\",\"item\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host#apireference\",\"headline\":\"Remove a host\",\"name\":\"Remove a host\",\"description\":\"Addressed by hostname, canonicalized the same way it was when added. A host mapped to a different connection answers 404 rather than a refusal: it is not this connection's to remove, and saying more would confirm it exists elsewhere. The gateway stops injecting this credential on that host immediately. Any agent call relying on it will start failing authentication.\",\"url\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ergoly.ai/api-reference/connections/remove-a-host#webpage\"},\"dateModified\":\"2026-11-09T02:24:49.294Z\",\"publisher\":{\"@id\":\"https://docs.ergoly.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ergoly.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ergoly\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ergoly","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"book-open","pages":[{"title":"Docs","href":""}]},{"tab":"Changelog","icon":"sparkles","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"API","icon":"user-robot","groups":[{"group":"Getting started","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"The API","href":"/technical/api"}]},{"group":"Company","pages":[{"title":"Get your company","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/organization","href":"/api-reference/organization/get-your-company"},{"title":"List chart placements","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/company/placements","href":"/api-reference/workers/list-chart-placements"},{"title":"Get the activity feed","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/activity","href":"/api-reference/activity/get-the-activity-feed"},{"title":"Get usage","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/usage","href":"/api-reference/usage/get-usage"}]},{"group":"Workers","pages":[{"title":"List workers","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workers","href":"/api-reference/workers/list-workers"},{"title":"Create a worker","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workers","href":"/api-reference/workers/create-a-worker"},{"title":"Get the current worker","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workers/me","href":"/api-reference/workers/get-the-current-worker"},{"title":"Get a worker","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workers/{id}","href":"/api-reference/workers/get-a-worker"},{"title":"Update a worker","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/workers/{id}","href":"/api-reference/workers/update-a-worker"},{"title":"Delete a worker","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workers/{id}","href":"/api-reference/workers/delete-a-worker"},{"group":"Provisioning","pages":[{"title":"Retry provisioning","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workers/{id}/retry","href":"/api-reference/workers/retry-provisioning"},{"title":"Stop a worker","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workers/{id}/stop","href":"/api-reference/workers/stop-a-worker"},{"title":"Get a provisioning job","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/jobs/{id}","href":"/api-reference/jobs/get-a-provisioning-job"}]},{"group":"Copies (eworks)","pages":[{"title":"List a worker's copies","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workers/{id}/eworks","href":"/api-reference/eworks/list-a-workers-copies"},{"title":"Get a copy","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/eworks/{id}","href":"/api-reference/eworks/get-a-copy"}]},{"group":"Memory","pages":[{"title":"Read a memory tier","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/eworks/{id}/memory","href":"/api-reference/memory/read-a-memory-tier"},{"title":"Write a file","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/eworks/{id}/memory","href":"/api-reference/memory/write-a-file"},{"title":"Write several files","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/eworks/{id}/memory","href":"/api-reference/memory/write-several-files"},{"title":"Delete a file or folder","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/eworks/{id}/memory","href":"/api-reference/memory/delete-a-file-or-folder"}]}]},{"group":"Clients","pages":[{"title":"List clients","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/clients","href":"/api-reference/clients/list-clients"},{"title":"Create a client","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/clients","href":"/api-reference/clients/create-a-client"},{"title":"Get a client","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/clients/{id}","href":"/api-reference/clients/get-a-client"},{"title":"Update a client","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/clients/{id}","href":"/api-reference/clients/update-a-client"},{"title":"Assign a client to a worker","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workers/{id}/clients","href":"/api-reference/clients/assign-a-client-to-a-worker"}]},{"group":"Channels","pages":[{"title":"List Slack channels","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/channels","href":"/api-reference/channels/list-slack-channels"},{"title":"Create a Slack channel","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/channels","href":"/api-reference/channels/create-a-slack-channel"},{"group":"Channel mappings","pages":[{"title":"List channel mappings","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/workers/{id}/channels","href":"/api-reference/channels/list-channel-mappings"},{"title":"Map a channel","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workers/{id}/channels","href":"/api-reference/channels/map-a-channel"},{"title":"Classify a channel","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/workers/{id}/channels/{channel}","href":"/api-reference/channels/classify-a-channel"},{"title":"Unmap a channel","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/workers/{id}/channels/{channel}","href":"/api-reference/channels/unmap-a-channel"},{"title":"Invite a worker to a channel","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/workers/{id}/channels/{channel}/invite","href":"/api-reference/channels/invite-a-worker-to-a-channel"}]}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Create a task","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks","href":"/api-reference/tasks/create-a-task"},{"title":"Get a task","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks/{id}","href":"/api-reference/tasks/get-a-task"},{"title":"Hand off a task","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks/{id}/handoff","href":"/api-reference/tasks/hand-off-a-task"},{"title":"Comment on a task","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks/{id}/comments","href":"/api-reference/tasks/comment-on-a-task"},{"title":"Change a task's state","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks/{id}/state","href":"/api-reference/tasks/change-a-tasks-state"},{"group":"Scheduled jobs (routines)","pages":[{"title":"Update a scheduled job","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/tasks/{id}","href":"/api-reference/tasks/update-a-scheduled-job"},{"title":"Cancel a scheduled job","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/tasks/{id}","href":"/api-reference/tasks/cancel-a-scheduled-job"},{"title":"List a job's runs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks/{id}/runs","href":"/api-reference/tasks/list-a-jobs-runs"},{"title":"Add a target","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks/{id}/targets","href":"/api-reference/tasks/add-a-target"},{"title":"Remove a target","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/tasks/{id}/targets/{targetId}","href":"/api-reference/tasks/remove-a-target"}]}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create a webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks","href":"/api-reference/webhooks/create-a-webhook"},{"title":"Get a webhook","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks/{id}","href":"/api-reference/webhooks/get-a-webhook"},{"title":"Update a webhook","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/webhooks/{id}","href":"/api-reference/webhooks/update-a-webhook"},{"title":"Revoke a webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/webhooks/{id}","href":"/api-reference/webhooks/revoke-a-webhook"},{"title":"Rotate a webhook secret","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks/{id}/rotate","href":"/api-reference/webhooks/rotate-a-webhook-secret"},{"title":"List deliveries","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks/{id}/deliveries","href":"/api-reference/webhooks/list-deliveries"}]},{"group":"Connections","pages":[{"title":"List connections","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connections","href":"/api-reference/connections/list-connections"},{"title":"Create a connection","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections","href":"/api-reference/connections/create-a-connection"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connections/{id}","href":"/api-reference/connections/get-a-connection"},{"title":"Update a connection","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/connections/{id}","href":"/api-reference/connections/update-a-connection"},{"title":"Delete a connection","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connections/{id}","href":"/api-reference/connections/delete-a-connection"},{"title":"Rotate a connection","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/{id}/rotate","href":"/api-reference/connections/rotate-a-connection"},{"group":"Hosts","pages":[{"title":"List hosts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connections/{id}/hosts","href":"/api-reference/connections/list-hosts"},{"title":"Add a host","description":"The hostname must be bare: no scheme, path, port, userinfo or wildcard. It is lowercased and any trailing dot dropped before it is stored, so what you send and what the gateway matches are the same thing. A host already mapped to another connection in this organization is a `conflict` — one host resolves to exactly one credential. Answers the connection with its new host list.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/{id}/hosts","href":"/api-reference/connections/add-a-host"},{"title":"Remove a host","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connections/{id}/hosts/{host}","href":"/api-reference/connections/remove-a-host"}]},{"group":"Connected apps","pages":[{"title":"Get a connect URL","description":"A consent screen needs a browser and a person, so this returns a link to open rather than claiming to finish. The link carries a single-use nonce instead of an Ergoly session, which means it can be opened in a private window signed into whichever account should be connected — usually the reason you are doing this. It expires; build another if it goes stale. Nothing exists in the vault until consent completes, at which point the connection appears in the list.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/oauth/{provider}/connect-url","href":"/api-reference/connections/get-a-connect-url"},{"title":"Get a sign-in link","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/{id}/connect-url","href":"/api-reference/connections/get-a-sign-in-link"},{"title":"Add a placement","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/{id}/placements","href":"/api-reference/connections/add-a-placement"},{"title":"Remove a placement","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connections/{id}/placements/{pid}","href":"/api-reference/connections/remove-a-placement"}]},{"group":"MCP servers","pages":[{"title":"Connect an MCP server","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/mcp","href":"/api-reference/connections/connect-an-mcp-server"},{"title":"Finish an MCP connection","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/connections/mcp/{id}/finish","href":"/api-reference/connections/finish-an-mcp-connection"}]},{"group":"Provider apps","pages":[{"title":"Get a provider app","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/connections/provider-apps/{provider}","href":"/api-reference/connections/get-a-provider-app"},{"title":"Set a provider app","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/connections/provider-apps/{provider}","href":"/api-reference/connections/set-a-provider-app"},{"title":"Delete a provider app","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/connections/provider-apps/{provider}","href":"/api-reference/connections/delete-a-provider-app"}]},{"group":"Your own OAuth client","pages":[{"title":"Get your OAuth client","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/oauth-apps/{app}","href":"/api-reference/connections/get-your-oauth-client"},{"title":"Set your OAuth client","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/oauth-apps/{app}","href":"/api-reference/connections/set-your-oauth-client"},{"title":"Delete your OAuth client","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/oauth-apps/{app}","href":"/api-reference/connections/delete-your-oauth-client"}]}]}]}]},"basePath":"","title":"Remove a host - Ergoly","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-Cj6eAYhz.js","dist-CdrJecqK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D-TRO5q5.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","AssistantPageLink-CHlcWBLM.js"]}