Set up the agency

Provider keys, branding, the team, API keys, connected apps and the plan — the agency-wide setup an admin credential can do.

Embed
Preview of the card
<a href="https://seolyticize.com/docs/set-up-the-agency"><img src="https://seolyticize.com/docs/_api/public/orgs/71cb2b7a-a719-4003-b3ea-6321dc1db8ab/spaces/3bf2dbf7-3faa-473c-ba3b-30588f5f8de4/pages/ed8629d4-f634-446b-ad27-cf7219f0691d/social-card.svg?v=3e7ae33eec8b" alt="Set up the agency" width="600" height="315"></a>

Everything here is agency-wide and needs an admin credential (see Start here). Do it once, before onboarding clients: most paid tools are refused until the provider they use is connected.

  1. See what is connected

    get_vendor_connections lists the data providers the agency has connected and which are working. Nothing secret is returned — a provider, a hint of the key, when it was last checked and the last error.

  2. Connect the data providers

    save_vendor_credential {provider, secret, login?} stores a provider's key and checks it straight away; the response says whether the check passed. Providers: dataforseo (search volume, results pages, backlinks and most research), serpapi, googleads (keyword volume from the agency's own Ads account, with the googleAds object), bingwebmaster, crux and pagespeed (Core Web Vitals and lab runs), serpproxy (the agency's own proxy pool for results pages and AI answers), the AI assistants for AI visibility (anthropic, chatgpt, gemini, perplexity, grok, meta-ai, deepseek), reportwebhook and telegram (delivery).

    remove_vendor_credential {provider} disconnects one.

  3. Brand the reports

    get_branding reads, set_branding {name, logoUrl, primaryColor} sets what clients see on reports and portal links. Until it is set, reports go out unbranded.

  4. Add the team

    list_team_members shows who is in the agency, their roles and any client limits. add_team_member {email, role, clientIds?} adds a person who already has a Seolyticize account, as admin, manager, analyst or client_viewer, optionally limited to some clients. remove_team_member {membershipId} removes one; the last owner cannot be removed.

  5. Give integrations their own keys

    create_api_key {name, clientId?, role?} mints a key — shown once, in that response, never again. Pin it to a client where the integration only serves one. list_api_keys and revoke_api_key {keyId} manage them; list_api_activity shows which key called what. Apps that signed in over MCP are listed by list_connected_apps and removed with disconnect_app {grantId}.

  6. Check the plan

    get_billing returns the plan, its limits (clients, tracked keywords) and status. Upgrading takes a person — see What needs a person.

Updated