An HTTP ingress endpoint is a URL where an external system can push data into IMSURGE. Use HTTP ingress for uploads, webhooks, device messages, or vendor exports.

The endpoint URL uses this format:

  https://upload.imsurge.com/data/{import_code}
  

{import_code} is a generated unique ID for the specific integration or credential endpoint. Users normally do not edit it. Copy the full endpoint URL and provide it to the system that will send data.


Configuration Options


IP Allowlist Format

The IP Allowlist can contain one IP address, one CIDR range, or a comma-separated list.

Examples:

  203.0.113.10
198.51.100.0/24
203.0.113.10, 198.51.100.0/24
  

If the IP Allowlist is blank, IMSURGE accepts requests from any IP address, subject to the other security settings. If it is filled in, requests from other IP addresses are rejected.


What the Sender Needs to Do

The external system should send an HTTP POST request to the endpoint URL with the data in the request body.

Example JSON request:

  curl -X POST \
  https://upload.imsurge.com/data/{import_code} \
  -H "Content-Type: application/json" \
  -d '{"temperature":72}'
  

With Basic Auth enabled:

  curl -X POST \
  https://upload.imsurge.com/data/{import_code} \
  -u "username:password" \
  -H "Content-Type: application/json" \
  -d '{"temperature":72}'
  

What Happens After Data Arrives

IMSURGE stores the raw request body, then schedules the related pipeline work.

JSON requests are stored as JSON files. CSV requests are stored as CSV files. Other payloads are stored as raw uploads.

Common outcomes:

Status Meaning
202 Accepted The data was received and queued.
404 Not Found The endpoint code is unknown or is not an HTTP ingress endpoint.
401 Unauthorized Basic Auth is enabled and the credentials are missing or wrong.
403 Forbidden The sender’s IP address is not allowed.
422 Unprocessable Entity The request body was blank.