[{"data":1,"prerenderedAt":637},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fintegrations\u002Fn8n":3,"docs-navigation":543,"docs-surround-\u002Fdocs\u002Fintegrations\u002Fn8n":634},{"id":4,"title":5,"body":6,"description":534,"extension":535,"icon":536,"meta":537,"navigation":538,"path":539,"seo":540,"stem":541,"__hash__":542},"docs\u002Fdocs\u002F2.integrations\u002F1.n8n.md","n8n",{"type":7,"value":8,"toc":520},"minimark",[9,12,24,39,44,51,61,68,72,79,84,147,157,161,188,192,199,294,304,310,314,321,389,406,416,420,455,459,495,499],[10,11,5],"h1",{"id":5},[13,14,15,16,23],"p",{},"The official ",[17,18,19],"strong",{},[20,21,22],"code",{},"n8n-nodes-hostsmith"," community node lets an n8n workflow drive Hostsmith over OAuth 2.0: deploy files to a site, create or delete sites, list domains, fetch account info. Authentication is handled by an OAuth2 credential in n8n, so every action runs as the user who connected the credential.",[13,25,26,27,30,31,34,35,38],{},"Works with ",[17,28,29],{},"n8n Cloud",", ",[17,32,33],{},"self-hosted n8n",", and ",[17,36,37],{},"local n8n"," for development.",[40,41,43],"h2",{"id":42},"_1-install-the-node","1. Install the node",[13,45,46,47,50],{},"In your n8n instance, open ",[17,48,49],{},"Settings → Community nodes → Install"," and enter:",[52,53,58],"pre",{"className":54,"code":56,"language":57},[55],"language-text","n8n-nodes-hostsmith\n","text",[20,59,56],{"__ignoreMap":60},"",[13,62,63,64,67],{},"n8n Cloud users: community nodes are available on all current plans. For self-hosted instances, set ",[20,65,66],{},"N8N_COMMUNITY_PACKAGES_ENABLED=true"," if you have not already.",[40,69,71],{"id":70},"_2-get-a-client_id-from-hostsmith","2. Get a client_id from Hostsmith",[13,73,74,75,78],{},"How you get a ",[20,76,77],{},"client_id"," depends on where your n8n runs:",[80,81,83],"h3",{"id":82},"n8n-cloud-or-self-hosted-any-non-loopback-url","n8n Cloud or self-hosted (any non-loopback URL)",[85,86,87,99,106,115,139],"ol",{},[88,89,90,91,98],"li",{},"Sign in to Hostsmith and open ",[17,92,93],{},[94,95,97],"a",{"href":96},"\u002Fdevelopers\u002Foauth-clients","OAuth Clients"," in the sidebar.",[88,100,101,102,105],{},"Click ",[17,103,104],{},"New client",".",[88,107,108,111,112,114],{},[17,109,110],{},"Client name",": anything human-readable, e.g. ",[20,113,5],{},". This is what users will see on the consent screen.",[88,116,117,120,121,127,130,131,134,135,138],{},[17,118,119],{},"Redirect URI",": paste the exact URL n8n shows at the top of the credential form. The format is:",[52,122,125],{"className":123,"code":124,"language":57},[55],"https:\u002F\u002F\u003Cyour-n8n-host>\u002Frest\u002Foauth2-credential\u002Fcallback\n",[20,126,124],{"__ignoreMap":60},[128,129],"br",{},"For n8n Cloud, that is ",[20,132,133],{},"https:\u002F\u002F\u003Cyour-workspace>.app.n8n.cloud\u002Frest\u002Foauth2-credential\u002Fcallback",". For self-hosted, substitute your own domain. ",[17,136,137],{},"Copy from n8n verbatim"," - matching is exact, so a trailing slash or wrong subdomain will fail at authorize time.",[88,140,101,141,144,145,105],{},[17,142,143],{},"Create",", then click the copy icon next to the generated ",[20,146,77],{},[148,149,151],"callout",{"type":150},"info",[13,152,153,154,156],{},"You can add multiple redirect URIs to one client (e.g. staging + production), or create a separate client per environment. Hostsmith clients are public (no secret) and use PKCE, so the ",[20,155,77],{}," alone is enough.",[80,158,160],{"id":159},"local-n8n-running-on-localhost","Local n8n (running on localhost)",[13,162,163,164,166,167,170,171,174,175,177,178,30,181,30,184,187],{},"Use the built-in trusted ",[20,165,5],{}," client. No registration step: in the n8n credential, set ",[20,168,169],{},"Client ID = n8n"," and leave the redirect URI at whatever n8n suggests (",[20,172,173],{},"http:\u002F\u002Flocalhost:5678\u002Frest\u002Foauth2-credential\u002Fcallback","). Hostsmith recognises this ",[20,176,77],{}," and only allows it for loopback hosts (",[20,179,180],{},"localhost",[20,182,183],{},"127.0.0.1",[20,185,186],{},"[::1]",").",[40,189,191],{"id":190},"_3-create-the-n8n-credential","3. Create the n8n credential",[13,193,194,195,198],{},"In n8n, open ",[17,196,197],{},"Credentials → New → Hostsmith OAuth2 API"," (the credential type registered by the node).",[200,201,202,215],"table",{},[203,204,205],"thead",{},[206,207,208,212],"tr",{},[209,210,211],"th",{},"Field",[209,213,214],{},"Value",[216,217,218,227,237,247,261,271,286],"tbody",{},[206,219,220,224],{},[221,222,223],"td",{},"Grant Type",[221,225,226],{},"Authorization Code (PKCE)",[206,228,229,232],{},[221,230,231],{},"Authorization URL",[221,233,234],{},[20,235,236],{},"https:\u002F\u002Fhostsmith.net\u002Fapi\u002Foauth\u002Fauthorize",[206,238,239,242],{},[221,240,241],{},"Access Token URL",[221,243,244],{},[20,245,246],{},"https:\u002F\u002Fhostsmith.net\u002Fapi\u002Foauth\u002Ftoken",[206,248,249,252],{},[221,250,251],{},"Client ID",[221,253,254,255,257,258,260],{},"The ",[20,256,77],{}," from step 2 (or ",[20,259,5],{}," for local)",[206,262,263,266],{},[221,264,265],{},"Scope",[221,267,268],{},[20,269,270],{},"account:read sites:read sites:write domains:read files:write",[206,272,273,276],{},[221,274,275],{},"Auth URI Query Parameters",[221,277,278,281,282,285],{},[20,279,280],{},"resource=https:\u002F\u002Fus.api.hostsmith.net"," (or ",[20,283,284],{},"https:\u002F\u002Feu.api.hostsmith.net"," for EU)",[206,287,288,291],{},[221,289,290],{},"Authentication",[221,292,293],{},"Body",[13,295,296,297,299,300,303],{},"If you installed the community node, most of these fields are pre-filled by the credential type; you only need to paste the ",[20,298,77],{}," (and pick the correct ",[20,301,302],{},"resource"," for your data partition).",[13,305,101,306,309],{},[17,307,308],{},"Connect my account",". n8n opens a Hostsmith sign-in window, you authorize the scopes, and the credential is saved.",[40,311,313],{"id":312},"_4-use-the-node-in-a-workflow","4. Use the node in a workflow",[13,315,316,317,320],{},"Add a ",[17,318,319],{},"Hostsmith"," node to your workflow and pick the credential you just created. The node exposes operations grouped by resource:",[200,322,323,336],{},[203,324,325],{},[206,326,327,330,333],{},[209,328,329],{},"Resource",[209,331,332],{},"Operations",[209,334,335],{},"Scopes used",[216,337,338,353,374],{},[206,339,340,345,348],{},[221,341,342],{},[17,343,344],{},"Account",[221,346,347],{},"read account info",[221,349,350],{},[20,351,352],{},"account:read",[206,354,355,360,363],{},[221,356,357],{},[17,358,359],{},"Sites",[221,361,362],{},"list, get, create, delete; deploy files to a site",[221,364,365,30,368,30,371],{},[20,366,367],{},"sites:read",[20,369,370],{},"sites:write",[20,372,373],{},"files:write",[206,375,376,381,384],{},[221,377,378],{},[17,379,380],{},"Domains",[221,382,383],{},"list configured domains",[221,385,386],{},[20,387,388],{},"domains:read",[13,390,391,392,30,395,30,398,401,402,405],{},"Typical pattern: an upstream node (e.g. ",[17,393,394],{},"Read Binary Files",[17,396,397],{},"Google Drive",[17,399,400],{},"Slack"," trigger) feeds files into the ",[17,403,404],{},"Hostsmith → Sites → Deploy"," action, which publishes them to a live HTTPS URL on the site you specify.",[13,407,408,409,411,412,105],{},"The credential's ",[20,410,265],{}," field is set by the node and should be left as-is - shrinking it can break resource pickers and deploy actions. For the full list of scopes Hostsmith supports and what each grants, see ",[94,413,415],{"href":414},"\u002Fdocs\u002Fmcp\u002Fauthentication#scopes","Scopes",[40,417,419],{"id":418},"rotating-or-revoking-access","Rotating or revoking access",[421,422,423,429,446],"ul",{},[88,424,425,428],{},[17,426,427],{},"Revoke a single credential",": delete the credential in n8n, or revoke the refresh token from inside Hostsmith.",[88,430,431,437,438,442,443,445],{},[17,432,433,434,436],{},"Revoke a ",[20,435,77],{}," entirely"," (all credentials using it stop working immediately): in Hostsmith, open ",[17,439,440],{},[94,441,97],{"href":96}," and delete the client. This is the right move if a ",[20,444,77],{}," was leaked or an environment is decommissioned.",[88,447,448,451,452,454],{},[17,449,450],{},"Rotate a redirect URI",": redirect URIs cannot be edited in place. Create a new client with the new URI, switch the n8n credential to its ",[20,453,77],{},", then delete the old client.",[40,456,458],{"id":457},"troubleshooting","Troubleshooting",[421,460,461,470,489],{},[88,462,463,469],{},[17,464,465,468],{},[20,466,467],{},"invalid_redirect_uri"," at authorize time"," - the URI in the Hostsmith client does not match what n8n sends. Copy from the n8n credential form, do not hand-type. Check the trailing slash and the exact host.",[88,471,472,478,479,482,483,485,486,105],{},[17,473,474,477],{},[20,475,476],{},"invalid_target"," or 401 from the API"," - the ",[20,480,481],{},"resource="," query parameter does not match your data partition. EU accounts must use ",[20,484,284],{},"; US accounts use ",[20,487,488],{},"https:\u002F\u002Fus.api.hostsmith.net",[88,490,491,494],{},[17,492,493],{},"Connection works but every action returns 403"," - the user who connected the credential does not have access to that org's resources, or the requested scope was dropped at consent.",[40,496,498],{"id":497},"see-also","See also",[421,500,501,507,513],{},[88,502,503,506],{},[94,504,290],{"href":505},"\u002Fdocs\u002Fdevelopers\u002Fauthentication"," - the underlying OAuth 2.0 + PKCE flow, including DCR for programmatic clients",[88,508,509,512],{},[94,510,511],{"href":96},"OAuth Clients dashboard"," - manage your org's clients",[88,514,515,519],{},[94,516,518],{"href":517},"\u002Fdocs\u002Fmcp","MCP server"," - for AI-agent integrations instead of workflow automation",{"title":60,"searchDepth":521,"depth":521,"links":522},2,[523,524,529,530,531,532,533],{"id":42,"depth":521,"text":43},{"id":70,"depth":521,"text":71,"children":525},[526,528],{"id":82,"depth":527,"text":83},3,{"id":159,"depth":527,"text":160},{"id":190,"depth":521,"text":191},{"id":312,"depth":521,"text":313},{"id":418,"depth":521,"text":419},{"id":457,"depth":521,"text":458},{"id":497,"depth":521,"text":498},"Use Hostsmith from an n8n workflow - publish files, manage sites, provision domains, all driven by OAuth.","md","simple-icons:n8n",{},{"title":5,"icon":536},"\u002Fdocs\u002Fintegrations\u002Fn8n",{"title":5,"description":534},"docs\u002F2.integrations\u002F1.n8n","O567b087pqeWt2XHnU0P8G8uLwgWO8k5nDbshnpLohs",[544],{"title":545,"path":546,"stem":547,"children":548,"page":633},"Docs","\u002Fdocs","docs",[549,575,583,616],{"title":550,"path":551,"stem":552,"children":553,"page":-1,"icon":555},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002Findex",[554,556,560,564,567,571],{"title":550,"path":551,"stem":552,"icon":555},"solar:rocket-bold",{"title":557,"path":558,"stem":559},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction",{"title":561,"path":562,"stem":563},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002F1.getting-started\u002F2.quick-start",{"title":359,"path":565,"stem":566},"\u002Fdocs\u002Fgetting-started\u002Fsites","docs\u002F1.getting-started\u002F3.sites",{"title":568,"path":569,"stem":570},"Custom Domains","\u002Fdocs\u002Fgetting-started\u002Fcustom-domains","docs\u002F1.getting-started\u002F4.custom-domains",{"title":572,"path":573,"stem":574},"Support","\u002Fdocs\u002Fgetting-started\u002Fsupport","docs\u002F1.getting-started\u002F5.support",{"title":576,"path":577,"stem":578,"children":579,"page":-1,"icon":581},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F2.integrations\u002Findex",[580,582],{"title":576,"path":577,"stem":578,"icon":581},"ph:usb-bold",{"title":5,"path":539,"stem":541,"icon":536},{"title":584,"path":517,"stem":585,"children":586,"page":-1,"icon":588},"MCP","docs\u002F3.mcp\u002Findex",[587,589,593,597,600,604,608,612],{"title":584,"path":517,"stem":585,"icon":588},"solar:plug-circle-bold",{"title":590,"path":591,"stem":592},"Quick start","\u002Fdocs\u002Fmcp\u002Fquick-start","docs\u002F3.mcp\u002F1.quick-start",{"title":594,"path":595,"stem":596},"Clients","\u002Fdocs\u002Fmcp\u002Fclients","docs\u002F3.mcp\u002F2.clients",{"title":290,"path":598,"stem":599},"\u002Fdocs\u002Fmcp\u002Fauthentication","docs\u002F3.mcp\u002F3.authentication",{"title":601,"path":602,"stem":603},"Tools","\u002Fdocs\u002Fmcp\u002Ftools","docs\u002F3.mcp\u002F4.tools",{"title":605,"path":606,"stem":607},"Recipes","\u002Fdocs\u002Fmcp\u002Frecipes","docs\u002F3.mcp\u002F5.recipes",{"title":609,"path":610,"stem":611},"Limits and errors","\u002Fdocs\u002Fmcp\u002Flimits-and-errors","docs\u002F3.mcp\u002F6.limits-and-errors",{"title":613,"path":614,"stem":615},"FAQ","\u002Fdocs\u002Fmcp\u002Ffaq","docs\u002F3.mcp\u002F7.faq",{"title":617,"path":618,"stem":619,"children":620,"page":-1,"icon":622},"Developers","\u002Fdocs\u002Fdevelopers","docs\u002F4.developers\u002Findex",[621,623,625,629],{"title":617,"path":618,"stem":619,"icon":622},"solar:code-bold",{"title":290,"path":505,"stem":624},"docs\u002F4.developers\u002F1.authentication",{"title":626,"path":627,"stem":628},"API Explorer","\u002Fdocs\u002Fdevelopers\u002Fapi-explorer","docs\u002F4.developers\u002F2.api-explorer",{"title":630,"path":631,"stem":632},"Node.js SDK","\u002Fdocs\u002Fdevelopers\u002Fsdk","docs\u002F4.developers\u002F3.sdk",false,[635,636],{"title":576,"path":577,"stem":578,"icon":581,"children":-1},{"title":584,"path":517,"stem":585,"icon":588,"children":-1},1780239624529]