Market NinjaMarket Ninja

Session completion webhook

We send this once a scrape session's status flips to completed — no polling needed. The payload is a pointer, not the merged data itself: fetch url (a normal GET /me/scrapes/{id}/products call, same Bearer auth, same daily quota) to actually retrieve it. Subscriptions are created from the extension's options page, not this API — see the Webhooks guide for subscribing, signature verification, and retry behavior.

Header Parameters

X-Marketninja-Event*"scrape_session.completed"

Value in

  • "scrape_session.completed"
X-Marketninja-Signature*string

HMAC-SHA256 over ${timestamp}.${rawBody}, using your subscription's own signing secret — see the guide for how to verify it.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

The body of the scrape_session.completed webhook — a pointer, not the merged data itself. See url below.

Response Body

Example Requests

The body of the scrape_session.completed webhook — a pointer, not the merged data itself. See url below.

POST/scrapeSessionCompleted