Connect a Custom API
Custom API stores the address of your own REST API and a key to call it with, so MarqIQ can read from it when the data sync for this source ships. Data sync is in early access: connecting checks and saves your credentials, and nothing is pulled from your API yet. If you want records in MarqIQ today, connect a tool with a sync engine instead — HubSpot, Salesforce, Pipedrive, Zoho CRM, Microsoft Dynamics, Marketo, Pardot, Mailchimp, Salesforce Marketing Cloud, Adobe Campaign or Adobe Journey Optimizer.
Before you start
Plan required
Custom API needs Pro or above. On Starter the card reads Upgrade to connect and the connect request is refused with "Custom API is part of the Pro plan — this workspace is on Starter."
Permissions required
You need someone who can create an API key in your own API — usually the engineer who owns it. Inside MarqIQ you need a workspace that is not read-only; a workspace whose subscription has lapsed is refused with "This workspace is read-only. Renew the subscription to connect tools." MarqIQ asks for no particular role to connect a data source.
Nothing is pulled yet
The Custom API page carries an amber notice headed Data sync for Custom API is in early access. It says connecting stores and validates your credentials, and that automated data sync for this source is not live, so Custom API data does not appear in your reports until it ships. Your connection is enabled automatically when it does.
- The base URL of your API, as an https address — for example
https://api.example.com/v1 - An API key or bearer token, if your API needs one. This field is optional.
- A hostname that resolves publicly, to a public address. MarqIQ asks DNS about the host and refuses any answer in a private, loopback, link-local, carrier-grade NAT or reserved range.
Get the credentials from your API
MarqIQ asks for two values and validates only the first. Both are stored encrypted.
Choose the base URL MarqIQ should store.
Give the address your endpoints hang off, including any version path. MarqIQ stores it exactly as you type it and shows it back in full on the connection, so paste the form your engineers use rather than a shortened one.
Check that base URL uses https.
An http address is refused. So is a URL with a username or a password in it — those belong in a header, not in the address.
A port is allowed. Your own API may listen on 8443, so MarqIQ does not refuse a URL that names one.
Create a read-only API key or bearer token in your own API.
The hint under the field says the value is sent as an Authorization header of the form Bearer followed by your key. That is what the sync will do when it ships; nothing is sent today. Give the key the narrowest read access that covers the records you want.
Copy the key somewhere you can paste from.
Skip this step if your API needs no key. The field is optional and MarqIQ connects without it.
Connect it in MarqIQ
Open Connected Tools in the sidebar.
The page it opens is headed Integrations.
Click Add more.
This opens Explore Integrations, the full catalogue. Custom API is on the Integrations page only once you have added it to your workspace or connected it, so the catalogue is how you reach it the first time.
Type Custom API into Search integrations…
It also sits under the Data Warehouses heading, beside Snowflake and Google BigQuery.
Click Connect on the Custom API card.
The card carries a Pro+ badge. Where your plan or your tool allowance will not take it, the button reads Upgrade to connect instead, with the reason printed in amber under the card.
Check the page you land on is headed Custom API.
An Early access pill sits beside the name, and the panel below reads Connect Custom API.
Paste your address into Base URL.
The field is marked required with a red asterisk, and the placeholder shows the shape MarqIQ expects.
Paste your key into API Key / Bearer Token.
The hint under the field reads "Sent as Authorization: Bearer <key>". The field masks what you type. Leave it empty if your API needs no key.
Click Connect.
The button reads Connecting… while MarqIQ checks your plan, the required field and the address. On success the form is replaced by a Connection active card and the header gains a green Connected pill.
What the connection card shows
The Connection active card lists Base URL in full and API Key / Bearer Token as four dots and the last four characters of the key. There is no Connected date on this card, because nothing has synced. MarqIQ stores the connection under the name Custom API followed by your base URL, so a workspace with two API connections can tell them apart.
What MarqIQ checks when you click Connect
- That your plan and your tool allowance take another tool. This check runs first, before anything you typed is read.
- That Base URL is filled in. It is the only required field.
- That it parses as a URL and uses https.
- That it carries no username and no password.
- That its host resolves, and that every address the host resolves to is a public one. Private, loopback, link-local, carrier-grade NAT, multicast and reserved ranges are all refused, in both IPv4 and IPv6 form.
Note
MarqIQ makes no request to your API during this check. It reads the address and asks DNS about the host, nothing more. A base URL that passes the check can still be a path your API does not serve, and you will not find that out at connect time.
What comes across once it is connected
Nothing, today. No records, no fields, no metrics.
- The Available in Reporting panel on the Custom API page lists no dimensions and no metrics. It shows the line "This source exposes fields from your queries/tables once a model is defined." instead.
- On Data Sources, the Custom API card shows Connected with no record count, and Mapping only · no record sync yet in place of a Sync button. There is no Sync button for this source and no scheduled run behind it.
- Custom API does not appear on the Field Mapping screens either. Field mapping covers CRM and marketing-automation tools, which have contact properties to map to; a data-warehouse source has none.
What MarqIQ writes back
Nothing. MarqIQ sends no request to your API — not at connect time, and not afterwards while data sync is in early access. Your key is stored encrypted and is not used until the sync ships.
What connecting Custom API does not unlock
The nine analyses read the record store, and only a tool with a sync engine fills it. Custom API has none, so none of them gain anything from this connection:
- Source truth, Field discipline, Forecast accuracy, Audience health, Lead scoring, Funnel, Form fills, Email and Automations.
- The Analysis, Data audit and Report templates links on a Data Sources card. They need a sync engine and records, and Custom API has neither.
- Hidden form fields, the guided source-tracking setup and the first-touch backfill, which are written by HubSpot and Marketo.
Tip
Connect Custom API now if you want the slot held and the credentials in place for the day the sync ships. If you need findings this quarter, spend the slot on a tool MarqIQ already pulls from and add Custom API on Business, where four tools are allowed and two may share a category.
Disconnect it
Open the Custom API page from Integrations.
Click Disconnect.
Confirm the prompt that asks "Disconnect Custom API?"
MarqIQ removes the stored credentials straight away and sets the connection to disconnected. The slot is freed, so you can connect another tool in its place.
The Custom API card disappears from Data Sources rather than reading "Disconnected, data kept", because there are no records to keep.
If it did not work
"Missing required field: Base URL"
Why: Base URL was empty, or held only spaces. API Key / Bearer Token is optional and never produces this message.
Fix: Type the full https address into Base URL and click Connect again.
"Base URL is not a valid URL"
Why: The value does not parse as a URL at all — most often because the scheme is missing and it reads as api.example.com rather than as an address.
Fix: Put https:// in front of the host and click Connect again.
"Base URL must use https"
Why: The address begins http://. MarqIQ refuses plain http for a URL it will send your key to.
Fix: Serve the API over https and paste the https address. There is no setting that relaxes this.
"Base URL must not include a username or password"
Why: The address carries basic-auth credentials, in the form https://user:pass@api.example.com. MarqIQ sends credentials in the Authorization header instead.
Fix: Remove everything between https:// and the host, then paste the key on its own into API Key / Bearer Token.
"Base URL points to a blocked (internal) address"
Why: You gave an IP address rather than a hostname, and that IP is in a range MarqIQ will never call — private, loopback, link-local, carrier-grade NAT, multicast or reserved. The cloud metadata address 169.254.169.254 is among them.
Fix: Give a public hostname for the API. An API reachable only inside your network cannot be connected; expose it on a public https host, or wait for the sync and use a tool MarqIQ already reads.
"Base URL resolves to a blocked (internal) address"
Why: The hostname is fine but DNS answered with an internal address — a split-horizon record, or a public name deliberately pointed at 127.0.0.1 or a 10.x address. Every address the host resolves to is checked, not only the first.
Fix: Check what the name resolves to from outside your network. Point it at the public address of the API, or use a hostname that already has one.
"Base URL host could not be resolved"
Why: DNS returned nothing for the hostname. A typo in the domain does this, and so does a name that exists only on your internal resolver.
Fix: Check the spelling of the host, then confirm it resolves publicly before you try again.
"Custom API is part of the Pro plan — this workspace is on Starter."
Why: Custom API is a Pro-and-above tool and the check runs before anything you typed is looked at, so this comes back however correct your URL is.
Fix: Move to Pro or above. A Free Trial workspace already qualifies and needs no change.
"This workspace is read-only. Renew the subscription to connect tools."
Why: The subscription has lapsed. A read-only workspace is refused before the plan and the tool allowance are read, so every tool gives this same message.
Fix: Renew the subscription on the Subscription page, then click Connect again.
The refusal names the tools you have already connected
Why: Your plan’s tool allowance is used up. On Pro the message reads "Pro includes 2 tools besides Google Tag Manager, and this workspace has connected 2", and then lists them by name. Google Tag Manager is never counted.
Fix: Disconnect a tool you no longer read from, or move up a plan. Business allows four.
The refusal says one tool from this category is already connected
Why: Pro allows one tool per category, and Snowflake, Google BigQuery and Custom API all sit in Data Warehouses. Connecting the second one of the three is refused even when you have a slot free.
Fix: Disconnect the warehouse you are not using, or move to Business, where more than one tool from the same category is allowed.
The form shows "Unauthorized"
Why: Your sign-in session ended between opening the page and clicking Connect. Nothing you typed was read.
Fix: Reload the page, sign in again, and paste the values again. Where the response carries no message at all, the form falls back to "Could not connect"; click Connect a second time before looking further.
The connection succeeded but no Custom API data is in your reports
Why: Data sync for this source is in early access. Connecting validates and stores credentials; it does not start a sync, and there is no Sync button to press.
Fix: Nothing to do. The amber notice on the Custom API page is the current state, and your connection is enabled automatically when the sync ships. For findings today, connect a tool MarqIQ already pulls records from.
Next steps
Related articles
Was this article helpful?