Funnel · AsyncAPI Specification
Funnel Webhooks
Version
View Spec
View on GitHub
CompanyMarketingMarketing IntelligenceMarketing DataAnalyticsAdvertisingData IntegrationETLData WarehouseAttributionReportingBusiness IntelligenceMCPAI AgentsMarketing Mix ModelingAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-12'
method: searched
source: >-
https://help.funnel.io/en/articles/8439795-file-import-webhook-api-documentation +
https://help.funnel.io/en/articles/8439483-file-import-webhook-overview
asyncapi_spec: null
asyncapi_note: >-
Funnel publishes no AsyncAPI document. Probes of /asyncapi.yaml and /asyncapi.json on every Funnel
host, and a scan of the funnel-io GitHub organisation (10 public repos), found none.
direction: inbound
direction_note: >-
IMPORTANT — read this before treating Funnel as an event publisher. Funnel's "webhook" is
INBOUND: the consumer POSTs to a Funnel-issued URL to hand Funnel file links to ingest. Funnel
does NOT publish outbound event callbacks to consumer-supplied endpoints, and there is no event
catalogue, no subscription API, no delivery-retry policy and no signature-verification scheme to
document. Funnel's only outbound notification surface is human-facing daily connection emails
(optionally relayed into Slack), not a machine event stream.
webhooks:
- name: File Import Webhook
provider_name: Funnel's webhook / File Import - Webhook API
direction: inbound
url_template: https://fileimport-webhook.funnel.io/{webhook_id}
method: POST
content_type: application/json
authentication:
type: apiKey
in: header
name: x-funnel-fileimport-token
detail: >-
Per-data-source secret token generated inside the Funnel app when a File Import data source is
created with the Webhook transport type. Requests without it are denied with 401.
purpose: >-
Send Funnel LINKS to files to ingest — not file content. Funnel then fetches each link and loads
the file into the File Import data source.
request_body:
shapes:
- form: single link
example: '"https://link-to-file.csv"'
- form: list of links
example: '["https://link-to-file-1.csv","https://link-to-file-2.csv"]'
deprecated_shapes:
- form: object with urls member (single)
example: '{"urls": "https://link-to-file.csv"}'
status: deprecated
detail: Funnel states this form "will be removed in upcoming updates".
- form: object with urls member (list)
example: '{"urls": ["https://link-to-file-1.csv","https://link-to-file-2.csv"]}'
status: deprecated
link_requirements:
- Links must be HTTPS.
- Links must be publicly accessible or pre-signed; password-protected links are rejected.
- The body carries links, never file content.
constraints:
file_types:
- CSV
- TSV
- XLSX
- ZIP (containing one or more of the above)
max_file_size: 1 GB
throttling: >-
Documented but unquantified — "If you send an abnormal number of requests or at a very high
frequency, your requests may be denied." See rate-limits/funnel-rate-limits.yml.
responses:
- status: 200
meaning: Accepted; Funnel will attempt the import. Acceptance is not import success.
- status: 400
meaning: Bad request — missing or invalid links in the POST body.
- status: 401
meaning: Invalid credentials — wrong or missing x-funnel-fileimport-token.
- status: 500
meaning: Internal server error on Funnel's side.
see: errors/funnel-problem-types.yml
common_integrations:
- AWS Lambda
- Google Cloud Functions
- Azure Functions
- Zapier
- Microsoft Power Automate
published_examples:
- curl
- Python (requests)
- Node.js (https)
event_catalog: []
event_catalog_note: >-
Empty by fact, not by omission — Funnel documents no outbound events. This is why no AsyncAPI
artifact is emitted and why the event-surface family is genuinely N/A for this provider rather
than a gap.
notes: >-
Captured verbatim from Funnel's own published webhook documentation, including its stated
deprecation of the {"urls": ...} body form. This is a real, first-party, documented HTTP contract
with published authentication, request shapes and status codes — one of only three programmatic
surfaces Funnel ships.