SDK
HTTP Reference
defineHttpEndpoint()
Defines an HTTP Endpoint
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.
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",
});
},
});
Parameters
The options for the HTTP endpoint.
Used to uniquely identify the HTTP Endpoint inside your Project.
Usually you would use the domain name of the service, e.g. cal.com
.
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
.
An optional title, displayed in the dashboard.
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.
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.
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.
If you set this to true
, the Request that comes in won’t go on to Trigger any Runs. This is useful if you want to Respond to the Request, but don’t want to Trigger any Runs.
Only Requests that match this filter will cause the corresponding function to run. For example, you can use this to only allow GET
Requests.
An array of HTTP methods to match. For example, ["GET", "POST"]
will match both GET
and POST
Requests.
An object of query parameters to match. This uses the EventFilter matching syntax.
filter: {
query: {
"hub.mode": [{ $startsWith: "sub" }],
},
},
An object of header key/values to match. This uses the EventFilter matching syntax.
filter: {
header: {
"content-type": ["application/json"],
},
},
An object of key/values to match. This uses the EventFilter matching syntax.
This is a function that’s called when a Request comes in. It’s passed the Request object, and expects you to return a Response object.
Returns
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?
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",
});
},
});