Webhooks are an incredibly useful feature of the Taddy API. In the background, Taddy is constantly monitoring SSS feeds to know whenever they have been updated. Whenever there is new data, we send it to you via a webhook. This means you don't have to continuously check with us for new updates, we'll push those updates to you immediately.
Example use-cases:
- Are you building a comic app? Get a webhook notification immediately after new comics or creator information is updated
Setting Up a Webhook
- Open up the Taddy Dashboard, you will see a “Setup a New Webhook” button.
- You will have to enter in:
- The endpoint url where you want to receive the notifications (usually on your own server)
- Pick which webhook events you would like to receive.
Note:
- You must be on a paid plan to add a webhook to your account.
- Webhook notifications do not count against your monthly API limits 🥳.
- The endpoint url you enter needs to be one publicly accessible over the internet. (For example, 127.0.0.1 and localhost URLs will not work, since Taddy servers will not be able to contact your local computer). If you’d like to test receiving these notifications locally on your computer, Ngrok provides a useful & free way to do so. It provides you a public url that is mapped to your localhost.
- Your endpoint url needs to be a
POST
endpoint
- In the Webhooks section, one of the fields given to you is the Webhook Secret. This is an optional security feature. We add this secret as the header
X-TADDY-WEBHOOK-SECRET
to all webhook notifications sent to this webhook. Because your endpoint url is publicly accessible and if you dont share this secret with anyone else, you can be confident that any data you receive on your endpoint is from us and can be trusted.
- Listen Up is a very simple app that receives and displays webhook events. It may be useful to you as a very easy way to see what kind of events are going to be received by your webhook endpoint.
- There is an example project which allows you to mock webhook events. It's a great way to test receiving webhook events before receiving the live events from Taddy’s API.
Webhook Events
A list of possible events for:
Creator
Event | Description |
creator.created | Get a notification when a new creator feed has been released |
creator.updated | Get a notification when creator details have been updated (e.g. name, description, avatar image, etc.) |
creator.deleted | Get a notification when a comic feed has been removed from Taddy, usually at the request of the creator |
creator.new_content_released | Most users won't need to subscribe to this event. When new creatorcontent have been released, you'll get this notification only once, no matter how many creatorcontent items have been added, updated, or removed. An example use case for this notification is if you're parsing the creator SSS feed yourself and want to be notified once when the feed has changed, instead of getting multiple notifications for each piece of creatorcontent that's been added or updated. |
CreatorContent
Event | Description |
creatorcontent.created | Get a notification when the creator has released a new type of content (along with their role in making the content). ex) Creator had made a ComicSeries and had the roles COMICSERIES_ARTIST & COMICSERIES_WRITER on it. |
creatorcontent.updated | Get a notification when a details around the the role they performed in creating the content are updated. |
creatorcontent.deleted | Get a notification when a creator has removed a type of content from their content feed. |
What does a webhook event look like?
A webhook event is made up of:
uuid
, taddyType
, action
, timestamp
, data
.Example:
// EXAMPLE WEBHOOK EVENT for Creator event
{
uuid: '5a4977e8-b0da-4cc7-a516-16a0fb6973d8',
taddyType: 'creator',
action: 'created',
timestamp: 1684448992,
data: {
uuid: '5a4977e8-b0da-4cc7-a516-16a0fb6973d8',
name: 'Zachary Morris',
bio: null,
hash: '2b80ecea81312717bcbe1872aa80c52ede308993819fdbafa2027ee123ed565c',
contentHash: '9d982608495697f438e0e31d768fdb297d1e6984f013842b2ccc982562c343a6',
avatarImageAsString: '{"base_url":"https://ax1.taddy.org/5a4977e8-b0da-4cc7-a516-16a0fb6973d8/c414e9a8-8d27-4280-9e43-a2e5445a9626/","avatar_sm":"avatar-sm.webp","avatar_md":"avatar-md.webp","avatar_lg":"avatar-lg.webp"}',
tags: [ 'zachmorris', 'willdrawforfood1', 'cartoonist' ],
country: 'UNITED_STATES_OF_AMERICA',
linksAsString: '[{"type":"PATREON","base_url":"https://patreon.com/","value":"zachmorris"},{"type":"TWITTER","base_url":"https://twitter.com/","value":"toonzach"}]',
sssUrl: 'https://taddy.org/feeds/sss/creator/5a4977e8-b0da-4cc7-a516-16a0fb6973d8',
sssOwnerName: null,
sssOwnerPublicEmail: null,
copyright: 'Copyright notice available at http://3s-docs.org/creator-friendly-copyright-notice',
isBlocked: null,
totalContentCount: 1
}
}
// EXAMPLE WEBHOOK EVENT for CreatorContent event
{
uuid: '3c90e534-0aba-4536-8bab-43e9dd0c4ac9',
taddyType: 'creatorcontent',
action: 'created',
timestamp: 1684449090,
data: {
uuid: '3c90e534-0aba-4536-8bab-43e9dd0c4ac9',
hash: 'f2c93ef053a62b05da1092cb39e41726da9fbbe436888b4d53dd6c9067839013',
creatorUuid: '5a4977e8-b0da-4cc7-a516-16a0fb6973d8',
contentUuid: '71113968-45a2-4c30-b770-655b57ae0de6',
contentType: 'COMICSERIES',
roles: [ 'COMICSERIES_ARTIST', 'COMICSERIES_WRITER' ],
position: 0,
contentPosition: 0
}
}