Builds and Integrations

Builds are the results of running scenario; they are environment specific, they need to be defined on the Environment page.

Blackfire starts builds periodically, provides a webhook for starting builds and supports integrations like SymfonyCloud,, New Relic and Quanta Monitoring.


Scenarios are run from the Blackfire’s servers. If the profiled application is behind a firewall, let the Blackfire servers access the application by allowing IP and in your configuration for the web ports (usually 80 and 443).

Periodic Builds Premium/Enterprise

Periodic builds allows you to run your scenarios on a regular basis. That’s a must on production servers.

Only public websites can be targeted by Blackfire to run scheduled scenarios. In general, if your environment is configured as a development environment, you will need to use our PHP SDK. Check your Endpoint and dev Environment configuration in the Dashboard’s “Settings” tab of your environment.

Start Build using a Webhook Enterprise

Starting a build with a webhook offers the most flexible way of triggering Blackfire scenarios based on third-party tool events. Thereby, you can add performance tests at any point of your tool-chain. For instance, you can:

  • Configure your tooling to trigger a new build after each deploy to the production servers. It enables you to check your production configuration and your code’s behaviour on production machines, and validate the deployment.
  • Configure your continuous integration tooling to automatically test any branch you deployed on your testing environment. You can then decide if the code is ready to be merged.
curl -X POST \
    -d "endpoint=" \
    -d "title=Build title"

Replace ENV-UUID by your environment UUID (and CLIENT-ID:CLIENT-TOKEN by your personal credentials if needed).

The webhook endpoint accepts the following request parameters:

endpoint The endpoint to profile
title The title
metadata A hash of keys/values. For example with curl: -d "metadata[key1]=value1" -d "metadata[key2]=value2"
http_username The username for HTTP Basic authentication
http_password The password for HTTP Basic authentication
ip The IP for forcing DNS
ssl_no_verify Disable SSL certificates verification (this is unsecure)
external_id A unique identifier for the build; commonly, a unique reference from a third party service like the Git commit sha1 related to the build
external_parent_id The unique identifier of the parent build, to compare with the current build, like the reference Git commit sha1
external_url A URL related to the build, like a Pull Request

You can also trigger a build via the Blackfire CLI:

blackfire build-trigger \ \
    --env=ENV-UUID \
    --title="Build PR 1234" \
    --external-id=`git log -1 --pretty=\"%H\"` \
    --external-parent-id=`git merge-base master HEAD` \
    --external-url="" \
    --http-password="http-password" \
    --http-username="http-username" \
    --ip="" \


If you are going to use the webhook from a shared service (like a Jenkins server), we recommend that you create a specific “bot” user to be used for automation like triggering webhooks from your continuous integration platform.


Blackfire environment pages provide a simple form (in the Dashboard Builds tab) that lets you configure a webhook payload and generate the corresponding cURL command. For your convenience, you can even trigger a build from there.

Start a New Build using a Native Integration Enterprise

Blackfire supports a number of native integrations with third-party tools. Please check their dedicated documentation: