Webhook Delivery

Clippy

Wiring up a webhook consumer?

Copy & paste these docs to your favorite coding agent.

Memelord sends an HTTP POST to each configured Webhook URL when a mission completes. The JSON body is flat: post text plus finished media.

POST <your-webhook-url>

Return any 2xx to acknowledge. Requests time out after 15 seconds. Delivery is best-effort and sent once — there is no automatic retry, and a non-2xx response is recorded as a failed delivery.

Headers

HeaderTypeDescription
Content-Typestringapplication/json
X-Memelord-Eventstringmission.completed
X-Memelord-Delivery-IdstringSame as the body id.

Payload

FieldTypeDescription
eventstringmission.completed
versionnumberSchema version. 1
idstringUnique id for this mission run. Use it to ignore a duplicate you have already processed.
titlestringMission name.
textstring or nullPost text / caption.
created_atstringISO 8601 timestamp.
mediaMediaItem[]Finished media. Empty for text-only.

MediaItem

FieldTypeDescription
typestringimage, video, audio, or file
urlstringSigned, time-limited URL to the media.
thumbnail_urlstring?Poster / thumbnail, when available.
alt_textstring?Accessibility text, when available.

Example

{
  "event": "mission.completed",
  "version": 1,
  "id": "2c3bf7df-1a76-495d-9733-88dba6da8253",
  "title": "Daily Deadlock meme",
  "text": "Valve still has no balance team and the memes write themselves.",
  "created_at": "2026-05-30T12:01:29.000Z",
  "media": [
    {
      "type": "video",
      "url": "https://assets.memelord.com/...signed....mp4",
      "thumbnail_url": "https://assets.memelord.com/...thumb.webp"
    }
  ]
}

Notes

  • id is unique per mission run — use it to ignore a duplicate you have already processed.
  • Media URLs are signed and expire — fetch and re-host on receipt.
  • Ignore unknown fields; version bumps on breaking changes.
Webhook Delivery | Memelord Dev Portal