Create a webhook
Creates a webhook delivering the selected activity events to a public HTTPS endpoint. The signing secret is returned only in this response.
POST
/v1/webhooksAuthorization
AuthorizationBearer token · headerrequiredBetter Auth session, OAuth access token, OAuth client-credentials token, or sfm_ Space machine credential.
or
AuthorizationOAuth2 access token · headerrequiredOAuth 2.0 with explicit Spacefast capability scopes. Use the authorization-code flow for people and client credentials for machines.
Scopes:
spaces:writeRequest body
requiredapplication/jsonteamIdstringmin length 1
urlstring<uri>requiredeventsstring[]min items 1 · default: ["*"]
Responses
201Response for status 201
$schemastring<uri>Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
dataobjectrequiredShow propertiesHide properties
idstringrequiredurlstring<uri>requiredeventsstring[]requiredstatusstringrequiredAllowed:
activedisabledfailingdeletedsecretstringsecretPreviewstringrequiredpreviousSecretExpiresAtstring<date-time> | anyrequiredShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anycreatedAtstring<date-time>requiredmatches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
updatedAtstring<date-time>requiredmatches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
defaultProblem details (RFC 9457). Any 4xx/5xx response is one `application/problem+json` document.
$schemastring<uri>Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
typestringrequiredProblem type URI resolving to the error docs page. The server derives it mechanically from `code` against the docs origin.
titlestringrequiredShort human-readable summary of the problem type. The server derives it mechanically from `code`.
statusintegerrequiredHTTP status code of this response, repeated in the body.
min -9007199254740991 · max 9007199254740991
detailstringrequiredHuman-readable failure explanation for this occurrence.
codestringrequiredStable snake_case error code naming the failed public contract.
pointerstringRFC 6901 JSON Pointer into the failing request field, for example "/files/37/path", on validation failures.
detailsobjectMachine-readable context for the error code.
suggestionsstring[]Actionable recovery steps safe to show in dashboards, SDKs, and CLI output.
nextstring[]Copy-pasteable commands or API requests an agent can run next.
requestIdstringrequiredThe request id to quote when contacting support.
Request
curl -X POST "https://api.spacefast.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"teamId": "string",
"url": "http://example.com",
"events": [
"*"
]
}'const response = await fetch("https://api.spacefast.com/v1/webhooks", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"teamId": "string",
"url": "http://example.com",
"events": [
"*"
]
})
});import requests
response = requests.post(
"https://api.spacefast.com/v1/webhooks",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"teamId": "string",
"url": "http://example.com",
"events": [
"*"
]
},
)Response
{
"$schema": "http://example.com",
"data": {
"id": "string",
"url": "http://example.com",
"events": [
"string"
],
"status": "active",
"secret": "string",
"secretPreview": "string",
"previousSecretExpiresAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
}{
"$schema": "http://example.com",
"type": "string",
"title": "string",
"status": -9007199254740991,
"detail": "string",
"code": "string",
"pointer": "string",
"details": {
"property1": null,
"property2": null
},
"suggestions": [
"string"
],
"next": [
"string"
],
"requestId": "string"
}