Skip to main content
POST
/
developers
/
webhooks
Create a new webhook
curl --request POST \
  --url https://api.bitgpt.xyz/developers/webhooks \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "label": "<string>",
  "url": "<string>",
  "events": [
    "product.created"
  ],
  "description": "<string>"
}
'
{
  "status": 200,
  "data": {
    "id": "webhook_0197bbbe-d286-73dd-8088-fc14dc526724",
    "secret": "whs_live_MDA5N2JiVmU5ZDI4Ni03Yjg3xTkYZmEtxTg3MtJhODEzMmYyX4JpdGdwdA",
    "label": "example",
    "url": "https://api-beta-ha72hg.bitgpt.xyz/demo/webhook",
    "created_at": "2025-06-29 14:52:14",
    "updated_at": null,
    "events": [
      "api_key.created"
    ]
  },
  "error": null,
  "log": null,
  "validator": null,
  "support_id": null,
  "message": "Resource created successfully",
  "env": "development"
}

Authorizations

Authorization
string
header
required

Send your access token as header Authorization: Bearer {accessToken}

Authorization
string
header
required

Your API key that starts with sk_live or sk_test. You can create yours at go.bitgpt.xyz/api-keys.

Body

application/json

Request body for creating a new webhook

label
string
required

Human-readable label for the webhook

Maximum string length: 255
url
string<uri>
required

URL where webhook events will be sent

events
enum<string>[]
required

List of events this webhook subscribes to

Webhook event for when an API key is created

Available options:
api_key.created
Example:

"product.created"

description
string | null

Description for the webhook

Response

Successful webhook response

status
enum<integer>
required

Status code of the response

Available options:
200,
201,
202
data
object
required

Response data containing the requested object

message
string | null
required

Message of the response, human readable

Example:

"Resource created successfully"

env
enum<string>
required

API environment

Available options:
development,
production
error
string | null

Error message of the response, human readable

Example:

"Invalid email address"

log

Useful informaiton, not always present, to debug the response

Examples:
{ "request_id": "req_1234567890" }

"Some pertinent log message"

validator
object

Validator response object, each key is the field name and value is the error message

Example:
{
"email": "Invalid email address",
"password": "Password is required"
}
support_id
string<uuid> | null

Support ID linked to the response, used to identify it when talking with our team

Example:

"support_uuidv7-something-else"