Guides & Tutorials
Create sites programmatically with the Netlify API
There's a few different ways to create a site on Netlify. You can do so by clicking a few buttons in the UI, drag and drop a folder on Netlify Drop, or running a few commands in the CLI. But there's one more way; you can also create new sites programmatically using the Netlify API, in a single command!
First, you need to start by installing and importing the netlify
package.
To install it, run npm install netlify
or yarn add netlify
. Then, import it with import NetlifyAPI from "netlify"
.
Once this is done, you'll need to instantiate a new NetlifyAPI object and pass it a Netlify token to be able to authenticate.
To find your Netlify token, navigate to your user settings page in the Netlify UI, click on the "Applications" tab and under the "Personal access tokens" settings, generate a new access token.
const api = new NetlifyAPI(NETLIFY_TOKEN);
Once this is done, you can use the createSite
method, passing it an account slug and body containing information about the repository you'd like to use and the name of your new site.
const site = await api.createSite({
account_slug: "my-awesome-team" // This should be the team you'd like your site to be under. If not specified, this will use your default team.
body: {
name: "my-new-awesome-site",
repo: {
provider: "github", // or "gitlab", "bitbucket"
repo: "username/repository",
private: false,
branch: "main",
},
}
});
The full code sample would look like this:
import NetlifyAPI from "netlify";
const api = new NetlifyAPI(NETLIFY_TOKEN);
const site = await api.createSite({
account_slug: "my-awesome-team"
body: {
name: "my-new-awesome-site",
repo: {
provider: "github",
repo: "username/repository",
private: true,
branch: "main",
},
}
});
That's it! You can use this code to create your own "Deploy to Netlify" button, or in a GitHub action to create a site automatically when you create a new repo; anything you can think of!
If you end up building anything fun, let us know!