Build hooks

Build hooks are URLs you can use to trigger new builds and deploys. You can find them in your site dashboard at Settings > Build & deploy > Continuous deployment > Build hooks.

Select Add build hook to create a new build hook. The build hook name is for your reference, and will display in your list of build hooks, as well as in the default deploy message for each deploy triggered by the hook.

Select a branch to build by default. Only branches which have been deployed at least once will appear in this list.

Upon saving your build hook settings, Netlify will give you a unique URL for that build hook. To trigger this hook, you need to send a POST request to that URL.

In most cases, this POST request will be sent from a service you want to integrate with Netlify, but you can also send these requests yourself. For example, you can run a curl command from your terminal:

curl -X POST -d '{}' https://api.netlify.com/build_hooks/XXXXXXXXXXXXXXX

You can also test build hook requests with tools like API Tester or Postman.

Parameters

Build hooks accept the following optional URL query parameters to alter the behavior of the triggered build:

  • trigger_branch: Specify which repository branch the build will use. If the branch does not exist in your repository at the time of the build, the build will fail, with an error message in the build log.
  • trigger_title: Specify a title to replace the default deploy message in your site deploy list.

Here is an example build hook URL using both available parameters:

https://api.netlify.com/build_hooks/XXXXXXXXXXXXXXX?trigger_branch=testing&trigger_title=triggered+by+This+Awesome+Service

This would trigger a deploy from an existing branch called testing, with a custom message: triggered by This Awesome Service.

Deploy list item for a branch deploy from the 'testing' branch, with message, 'triggered by This Awesome Service'

Payload

You can send a custom payload in your build hook POST request. The contents must be passed as a string, which will be URL-encoded and made available in the triggered build as an environment variable. You can access it in the build by using the variable INCOMING_HOOK_BODY.