*
* Recoloring the span has been unreliable (Tailwind utility CSS
* specificity quirks, deploy lag), so we just remove the overlay
* entirely with display:none. The anchor's own background then
* becomes the visible color, which is exactly what we want. The
* mobile variant has no overlay span, so display:none on the
* span is a no-op there and the anchor bg wins by default.
*/
#navbar a[href="https://app.nango.dev/signup"] {
background-color: #29abe3 !important;
background-image: none !important;
border: 1px solid #29abe3 !important;
color: #ffffff !important;
}
#navbar a[href="https://app.nango.dev/signup"] > span:first-child,
#navbar a[href="https://app.nango.dev/signup"] span.absolute,
#navbar a[href="https://app.nango.dev/signup"] span[class*="bg-primary"] {
display: none !important;
}
#navbar a[href="https://app.nango.dev/signup"]:hover {
background-color: #217ea6 !important;
border-color: #217ea6 !important;
color: #ffffff !important;
}
/* ══ HIDE BOTTOM CHAT ASSISTANT INPUT ════════════════════════════ */
/*
* Mintlify pins an "Ask a question..." chat-assistant input at the
* bottom of every doc page. The navbar already has a separate Ask AI
* button, so this bottom input is redundant. Mintlify doesn't expose
* a docs.json toggle for it.
*
* Two layers needed:
* 1. The floating input bar itself (.chat-assistant-floating-input).
* 2. Its rounded-2xl wrapper div — which also appears identically
* inside the Ask AI sidebar panel, so the rule must be scoped to
* #content-area to avoid hiding the panel's own input container.
*
* Do NOT use [class*="chat-assistant"] (hides the panel) or
* #chat-assistant-textarea (that ID is duplicated on the panel
* textarea and would hide it too).
*/
.chat-assistant-floating-input,
#content-area div.rounded-2xl.pointer-events-auto[class*="bg-background-light"] {
display: none !important;
}
🚀 Quickstart
🔗 Useful links
🚨 API gotchas
Authorize Affinity (v1)
Go to Connections -> Add Test Connection -> Authorize, then enter your Affinity API Key. Later, you’ll let your users do the same directly from your app. Call the Affinity (v1) API
Let’s make your first request to the Affinity (v1) API (fetch current user information). Replace the placeholders below with your secret key, integration ID, and connection ID:curl "https://api.nango.dev/proxy/auth/whoami" \
-H "Authorization: Bearer <NANGO-SECRET-KEY>" \
-H "Provider-Config-Key: <INTEGRATION-ID>" \
-H "Connection-Id: <CONNECTION-ID>"
Install Nango’s backend SDK with npm i @nangohq/node. Then run:import { Nango } from '@nangohq/node';
const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });
const res = await nango.get({
endpoint: '/auth/whoami',
providerConfigKey: '<INTEGRATION-ID>',
connectionId: '<CONNECTION-ID>'
});
console.log(JSON.stringify(res.data, null, 2));
Or fetch credentials dynamically via the Node SDK or API. ✅ You’re connected! Check the Logs tab in Nango to inspect requests.
- The Affinity API is only for Premium and Enterprise tier customers, and for Professional tier customers who signed up for Affinity before July 5, 2023.
- Currently, Affinity supports one key per user on your team.
- There is a limit of three webhook subscriptions per Affinity instance.
- Currently, webhooks work only with API v1.