Skip to content

Create input queue config

POST
/api/v1/integrations/inputs
Code sample: cURL
curl -X POST 'https://dashboard.justcrawl.io/api/v1/integrations/inputs' \
-H 'Authorization: Bearer $JUSTCRAWL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"Webhook from upstream","queueType":"webhook"}'

Provisions a new upstream input source. Two queueType paths: sqs pulls URLs from an external SQS queue on the customer’s AWS account (requires credentials.accessKeyId + secretAccessKey + region and a queueUrl); webhook mints a signed ingest URL the customer’s upstream can POST URLs to. Credentials are AES-256-GCM encrypted at rest before persistence. pollIntervalMs is bounded (1s..1h) and maxUrlsPerDay is bounded (1..1M) — out-of-range values return 400 with a specific message naming the limit. The response carries the derived webhookUrl ready to paste into the upstream configuration. Requires the org:manage permission.

Media type application/json
object
name
required

Display name shown in the dashboard.

string
queueType
required
string
Allowed values: sqs webhook
credentials

For sqs, requires accessKeyId, secretAccessKey, region. Encrypted at rest before persistence. Omit for webhook.

object
queueUrl

Required when queueType=sqs — the SQS queue ARN/URL the poller will read.

string
workflowId

Optional. Workflow to route ingested URLs through; falls back to Automatic resolution when omitted.

string
pollIntervalMs

SQS poll cadence in ms. Bounded 1s..1h.

integer
>= 1000 <= 3600000
maxUrlsPerDay

Daily ingestion cap (defense against runaway upstreams).

integer
>= 1 <= 1000000

Created. Body includes the derived webhookUrl for queueType=webhook, or null otherwise.

Media type application/json
object
id
string format: uuid
name
string
queueType
string
Allowed values: sqs webhook
queueUrl
string
nullable
workflowId
string format: uuid
nullable
isEnabled
boolean
pollIntervalMs
integer
maxUrlsPerDay
integer
webhookUrl
string
nullable
lastPolledAt
string format: date-time
nullable
lastError
string
nullable
createdAt
string format: date-time
Example
{
"queueType": "sqs"
}

Validation failed — request body or query is missing/invalid

Media type application/json
object
error
string
Example
{
"error": "Missing or invalid \"url\" field"
}

Missing or invalid authentication token

Media type application/json
object
error
string
Example
{
"error": "Missing or invalid authentication token"
}

Insufficient permissions for this operation

Media type application/json
object
error
string
Example
{
"error": "No organization. Complete onboarding first."
}

Unexpected server error. Logs and PostHog $exception capture

Media type application/json
object
error
string
Example
{
"error": "Something went wrong"
}