Create output config
curl -X POST 'https://dashboard.justcrawl.io/api/v1/integrations/outputs' \ -H 'Authorization: Bearer $JUSTCRAWL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"name":"Webhook to data team","outputType":"webhook","credentials":{"hmacSecret":"<32-byte-secret>"},"destination":"https://data.example.com/justcrawl-events"}'Provisions a new downstream output destination. Two outputType paths:
s3 writes job results to a customer-owned bucket (requires
credentials.accessKeyId + secretAccessKey + region and a
destination bucket name); webhook POSTs results to a customer URL
(requires credentials.hmacSecret for signature verification, and the
destination must be a public URL — SSRF defense blocks localhost /
private IPs / .internal / .local hostnames / the AWS metadata IP).
Credentials are AES-256-GCM encrypted at rest. The system-managed
internal outputType is provisioned automatically per-org by
migration V096 and cannot be created via this endpoint. Requires the
org:manage permission.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
For s3, requires accessKeyId + secretAccessKey + region. For webhook, requires hmacSecret. Encrypted at rest.
object
For s3, the bucket name. For webhook, the public POST URL. SSRF-protected on submit.
Responses
Section titled “ Responses ”Created output configuration.
object
Example
{ "outputType": "s3"}Validation failed — request body or query is missing/invalid
object
Example
{ "error": "Missing or invalid \"url\" field"}Missing or invalid authentication token
object
Example
{ "error": "Missing or invalid authentication token"}Insufficient permissions for this operation
object
Example
{ "error": "No organization. Complete onboarding first."}Unexpected server error. Logs and PostHog $exception capture
object
Example
{ "error": "Something went wrong"}