Webhooks

Embed
Preview of the card
<a href="https://forumulate.com/p/trackified/docs/ref-webhooks"><img src="https://forumulate.com/api/public/orgs/trackified/spaces/docs/pages/1d50d1de-5c93-44a5-adcd-4cb6ed92c180/social-card.svg?v=3e7ae33eec8b" alt="Webhooks" width="600" height="315"></a>
GEThttps://api.trackified.15-204-158-166.sslip.io/v1/webhooks
List webhook endpoints
Parameters
limitintegerquery
= 50
offsetintegerquery
= 0
Code samples
cURL
curl -X GET "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset="
TypeScript
const res = await fetch('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset=', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset=",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset=", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset=')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.trackified.15-204-158-166.sslip.io/v1/webhooks?limit=&offset="))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 Endpoints
Example
{
  "data": [
    {
      "id": "string",
      "url": "string",
      "event_types": [
        "tracking.created"
      ],
      "enabled": true,
      "secret_preview": "string",
      "created_at": "2024-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "limit": 0,
    "offset": 0,
    "total": 0
  }
}
Schema
dataWebhook[]required
Show child parameters
idstring
urlstring
event_typesWebhookEventType[]
enabledboolean
secret_previewstring
created_atstring
paginationobjectrequired
Show child parameters
limitinteger
offsetinteger
totalinteger
401 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
POSThttps://api.trackified.15-204-158-166.sslip.io/v1/webhooks
Add a webhook endpoint
Request body application/json
urlstringrequired
event_typesWebhookEventType[]
{
  "url": "string",
  "event_types": [
    "tracking.created"
  ]
}
Code samples
cURL
curl -X POST "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks" \
  -H "Content-Type: application/json" \
  -d '{"url":"string","event_types":["tracking.created"]}'
TypeScript
const res = await fetch('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"url":"string","event_types":["tracking.created"]}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks",
    headers={
    "Content-Type": "application/json",
    },
    json={"url": "string", "event_types": ["tracking.created"]},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("POST", "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks", strings.NewReader(`{"url":"string","event_types":["tracking.created"]}`))
	req.Header.Set("Content-Type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.trackified.15-204-158-166.sslip.io/v1/webhooks');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"url":"string","event_types":["tracking.created"]}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks')
req = Net::HTTP::Post.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"url":"string","event_types":["tracking.created"]}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.trackified.15-204-158-166.sslip.io/v1/webhooks"))
    .header("Content-Type", "application/json")
    .method("POST", BodyPublishers.ofString("{\"url\":\"string\",\"event_types\":[\"tracking.created\"]}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
201 Created. The full signing secret is returned only here.
Example
{
  "id": "string",
  "url": "string",
  "event_types": [
    "tracking.created"
  ],
  "enabled": true,
  "secret_preview": "string",
  "created_at": "2024-01-01T00:00:00Z",
  "secret": "string"
}
Schema
idstring
urlstring
event_typesWebhookEventType[]
enabledboolean
secret_previewstring
created_atstring
secretstring
400 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
401 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
DELETEhttps://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}
Remove a webhook endpoint
Parameters
idstringpathrequired
Code samples
cURL
curl -X DELETE "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}"
TypeScript
const res = await fetch('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}', {
  method: 'DELETE',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "DELETE",
    "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}')
req = Net::HTTP::Delete.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}"))
    .method("DELETE", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 Removed
401 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
404 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
POSThttps://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test
Sign a sample event without sending it
Parameters
idstringpathrequired
Code samples
cURL
curl -X POST "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test"
TypeScript
const res = await fetch('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test', {
  method: 'POST',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test')
req = Net::HTTP::Post.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.trackified.15-204-158-166.sslip.io/v1/webhooks/{id}/test"))
    .method("POST", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 The signed sample
Example
{
  "signature": "string",
  "body": {}
}
Schema
signaturestring
bodyobject
401 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
404 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
GEThttps://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries
List recent webhook delivery attempts
Parameters
limitintegerquery
= 50
offsetintegerquery
= 0
Code samples
cURL
curl -X GET "https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset="
TypeScript
const res = await fetch('https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset=', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset=",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset=", nil)
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset=')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.trackified.15-204-158-166.sslip.io/v1/webhook-deliveries?limit=&offset="))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Responses
200 Deliveries, newest first
{}
401 Error
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string"
  }
}
Schema
errorobject
Show child parameters
codestring
messagestring
request_idstring
Updated