const caldotcom = client.defineHttpEndpoint({
  //this should be unique inside your project
  id: "cal.com",
  //usually you'd use the domain name of the service
  source: "cal.com",
  //the icon is optional, it displays in the dashboard
  icon: "caldotcom",
  //this function is called when a webhook is received
  verify: async (request) => {
    //this is a useful helper function that can verify sha256 signatures
    //each API has a different header name
    return await verifyRequestSignature({
      request,
      //you can find the header name in the API's documentation
      headerName: "X-Cal-Signature-256",
      //you can find the secret in the Trigger.dev dashboard, on the HTTP endpoint page
      secret: process.env.CALDOTCOM_SECRET!,
      algorithm: "sha256",
    });
  },
});

An HTTP endpoint allows you to create an HTTP Trigger, which means you can trigger your Jobs from any webhooks.

Parameters

options
HTTPEndpointOptions
required

The options for the HTTP endpoint.

id
string
required

Used to uniquely identify the HTTP Endpoint inside your Project.

source
string
required

Usually you would use the domain name of the service, e.g. cal.com.

icon
string

An optional icon name that’s displayed in the dashboard. Lots of company names are supported, e.g. github, twilio. You can also reference the name of any Tabler icon, e.g. brand-google-maps, brand-twitch.

title
string

An optional title, displayed in the dashboard.

examples
array

Used to provide example payloads that are accepted by the job.

This will be available in the dashboard and can be used to trigger test runs.

properties
array

Properties that are displayed in the logs.

Each property has the following fields:

verify
function
required

This is compulsory, and is used to verify that the received webhook is authentic. It’s a function that expects you to return a result object like:

//if it's valid
return { success: true }
//if it's invalid, reason is optional
return { success: false, reason: "No header" }

In 90% of cases, you’ll want to use the verifyRequestSignature helper function we provide.

respondWith
object

This optional object allows you to immediately Respond to a Request. This is useful for some APIs where they do a GET Request when the webhook is first setup and expect a specific Response.

Only use this if you really need to Respond to the Request that comes in. Most of the time you don’t.

Returns

HttpEndpoint
HttpEndpoint

The HTTP Endpoint that was created. You should assign this to a variable, as you’ll need it to create an HTTP Trigger.

Was this page helpful?