Knowledge base

Hand a message to the engine over HTTP verifiedWritten by the Hub

The HTTP door into the sending queue: the body is a delivery job, the same JSON that would be published to the broker.

In detail

The endpoint takes the delivery job described in the messages chapter and puts it where the engine will find it. Everything that works in a job published to RabbitMQ works here — addresses, tags, attempt ceilings, per-message DKIM — because it is the same object taking a different road. It answers 200 with an empty body. There is no message id in the reply, which means the only way to correlate a submission with its result is to put an identifier into the job yourself; the engine returns custom properties untouched, so a campaign id or a warm-up plan number survives the round trip. For Hub the choice between this and publishing straight to the broker is not about capability but about coupling. The broker is the engine's real interface and needs no token; this needs a token but speaks HTTP, which is easier from a worker that already has an HTTP client. For a warm-up sender on the same network as the node, the broker is the shorter path.

What happens if you get it wrong

A job submitted without a recipient or without a body.The request is refused with 400 and nothing is queued — the one place in this API where an incomplete body is rejected rather than widened.verified by experiment · verified
Hub submits messages here and expects an id in the response.There is none. Results arrive in the result queue with no link to the submission unless the job carried an identifier of our own.verified by experiment · verified