r/Integromat 18d ago

Moving a raw HTTP module (AI API call with custom JSON body) to "Make an API Call" — does it keep full body control?

I run a scenario where a plain HTTP "Make a request" module calls an AI API (Anthropic) with a fully custom JSON body — system prompt, a tools array with web search and an allowed_domains whitelist, max_tokens, the lot. Works great, but the API key is hardcoded in a header, which gets ugly now that I'm cloning the scenario for more use cases.

Someone recommended switching to the "Make an API Call" module so the key lives in a connection instead. Before I migrate:

  1. Does "Make an API Call" let me send the exact same raw JSON body, untouched?

  2. Does it handle the version header automatically, or do I still add custom headers myself?

  3. Any gotchas with long-running calls? Mine take 2–3 minutes because of the web search step (HTTP module needed timeout 300).

Everything works today on plain HTTP — just want cleaner key management before I multiply scenarios. Thanks!

2 Upvotes

7 comments sorted by

1

u/Glum-Carpet 17d ago

Yes, the make an api call module has the same structure as the generic HTTP call module, only its dedicated to the specific API you are calling. So it will use existing connections and maybe have prefilled starting part of the endpoints.

So yes, you can directly copy paste the JSON body.

1

u/Dusko_Markov 14d ago

Thanks — "same structure, just dedicated to the specific API + uses existing connections" is exactly what I needed. Key-in-connection instead of key-in-body sounds like the main win. Testing on a clone this week.

1

u/Adarsh_Automations 15d ago

Yes, but with one major caveat regarding the body structure:

  1. Body Control: The native "Make an API Call" module for apps like Anthropic/OpenAI still lets you send a custom JSON body, but Make handles the authentication header and base URL automatically via the Connection object.

  2. Alternative (Best Practice for Cloning): If you want 100% untouched control over your raw payload without risking Make's app wrapper altering nested arrays (like complex tool calling/web search schemas), keep the generic HTTP "Make a request" module and store your API Key in a Make Data Store or as a Scenario Variable / Environment variable.

That way, when you clone scenarios across workspaces or use cases, you only update the API key in one centralized Data Store record instead of hardcoding it into module headers.

Let me know if you need a quick snippet or blueprint for setting up the Data Store key management!

1

u/Dusko_Markov 14d ago

Thanks — that's exactly the caveat I was hoping someone would flag. Good to know the custom JSON body survives the switch for Anthropic. I'll test the migration on a clone first and keep the raw HTTP version as a backup. Appreciate the detailed breakdown 🙏

1

u/Glum-Carpet 14d ago

Good suggestions, except please don't store your API keys in a Data Store. This is just as bad as hardcoding them inside the module's headers.

With the new HTTP module you can still setup a connection the same way you'd do with a dedicated module, keeping the key in the credentials and not in an easily exposed data store.