Short path: LLM API gateway · Production LLM API · Multi-model API · Usage logs
Last verified: August 3, 2026
To call an OpenAI-compatible API from Zapier, use an API request action, send a POST request to /v1/chat/completions, store the API key in a connection when the chosen Zapier product supports it, and map choices[0].message.content into the next step. For LumeAPI, the request URL is https://api.lumeapi.site/v1/chat/completions.
The key decision is not the prompt. It is where the credential lives.
Choose the correct Zapier request path
Zapier currently documents several ways to call APIs. For this task:
| Option | Credential behavior | Best fit |
|---|---|---|
| API by Zapier | API key or OAuth credential stored in a connection | Preferred for a reusable LumeAPI key |
| Webhooks by Zapier | Simple auth or headers configured in the Zap step | Quick prototype with tighter sharing controls |
| Native OpenAI app | Vendor-specific actions and connection | Direct OpenAI workflows, not a generic custom gateway |
API by Zapier is documented as a premium app. If it is unavailable on your plan, Webhooks can send the request, but anyone with edit access to the Zap may be able to inspect step configuration. Never put a key into a public Zap template or screenshot.
Configure the API connection
Create an API-key connection restricted to the LumeAPI API domain where Zapier asks for an allowed-domain filter. Configure the credential as a static header:
Authorization: Bearer <your LumeAPI inference key>The Research ingest key is not an inference credential and must not be used here.
Build the request action
Use a trigger that provides a short text field, then add the API request action:
| Field | Value |
|---|---|
| Method | POST |
| URL | https://api.lumeapi.site/v1/chat/completions |
| Header | Content-Type: application/json |
| Body | Valid JSON |
Map the trigger's text into this body:
{
"model": "gpt-5.4-mini",
"messages": [
{
"role": "system",
"content": "Return a concise answer suitable for an automation."
},
{
"role": "user",
"content": "{{trigger_text}}"
}
],
"temperature": 0
}Use a plain test value first: Return exactly: Zapier connection ok. Do not test with a real customer email, ticket or document until you have confirmed the request and data-retention path.
Map the result
After a successful test, select the generated text from:
choices → 0 → message → contentAlso retain the response id, model and usage fields when available. Add the Zap run ID from the automation side. Together, these values let you investigate whether a bad result came from the trigger data, Zap mapping, gateway, model or a downstream action.
If Zapier flattens or labels nested fields differently in the editor, use the tested response picker. Do not type a path copied from an unrelated screenshot.
Webhooks by Zapier fallback
If you use Webhooks, choose a POST or Custom Request action and configure:
URL: https://api.lumeapi.site/v1/chat/completions
Payload type: json
Authorization: Bearer <key>
Content-Type: application/jsonCustom Request gives more control over raw JSON, but less automatic protection from malformed data. Zapier's documentation recommends API by Zapier when an API key should live in a connection rather than inside the Zap or tool setup.
Prevent expensive or dangerous Zap behavior
A single trigger can fan out into multiple AI and downstream tasks. Add controls before turning the Zap on:
- Filter empty, duplicate and oversized input.
- Use one clearly defined user job per model call.
- Cap the generated output length through the prompt and request settings.
- Route only allowlisted models.
- Stop on 400 and 401 errors.
- Retry 429, timeouts and selected 5xx errors only a few times.
- Add a human approval step before sending external messages or changing records.
- Use a stable source-record ID to make downstream actions idempotent.
An AI retry must not send the same sales email twice. Separate “generate the draft” from “perform the external action,” and store a completion marker against the source record.
Troubleshooting matrix
| Symptom | Likely cause | Fix |
|---|---|---|
401 | Wrong key, missing Bearer prefix or wrong connection | Recreate the API-key header and test a minimal request |
404 | Wrong route or model | Confirm /v1/chat/completions; check available models |
400 | Body is not valid JSON or mapped data broke quoting | Start from the minimal body and use a JSON-aware editor |
| Output field missing | Test response was not refreshed or response shape changed | Retest the action and inspect raw JSON |
| Repeated tasks | Trigger duplicates or automatic retries | Deduplicate on source ID and record completed actions |
| Slow Zap | Model latency or too much prompt/output | Shorten input, cap output and choose a faster model |
A practical first automation
A safe first use case is ticket classification:
New support ticket
↓
Filter: non-empty and not already classified
↓
LumeAPI request: return category + short summary
↓
Validate allowed category
↓
Update the ticket recordKeep customer-facing replies as drafts until you have measured accuracy. Classification is easier to validate than autonomous sending and gives you clean data for cost per accepted result.
Sources and verification boundary
- Zapier: ways to make API requests
- Zapier: trigger API requests in workflows
- Zapier: Webhooks getting started
- LumeAPI production guide
The product-option comparison and request fields were checked against Zapier's current public documentation on August 3, 2026. Plan availability and editor labels can change; confirm the credential location in your own workspace before publishing a Zap.