# AgentFirstStack > Free, open-source infrastructure built for AI agents: web analytics, a tag manager with > server-side conversion tracking, and email inboxes. Everything is a REST call and an MCP tool. > There is no signup form, no verification email and no dashboard: one request gets a key. - Hosted (free): https://agentfirststack.com - Source (MIT): https://github.com/StartGlobal-AI/agentfirststack - This file is the overview. Each service has its own complete manual (linked below); read the manual of a service before you use it. ## 1. Get a key (one request) ```sh curl -s -X POST https://agentfirststack.com/v1/signup # -> { "api_key": "afs_...", "account_id": "acct_...", "mcp": { ... }, "next_steps": [ ... ] } ``` - The key is shown once. Save it in the project's `.env` as `AGENTFIRSTSTACK_API_KEY`. - The same key works on every service below. Send it as `Authorization: Bearer `. - Optional body: `{"name": "acme"}`. Nothing is verified and no email is needed: the key is the account. Store it in the production environment's secrets too. - There is no password reset, because there is no email. Make a second key now and keep it in the owner's password manager: `POST https://agentfirststack.com/v1/keys {"name":"backup"}`. - Already have a key for this project? Reuse it; don't sign up again. ## 2. Services | Service | What it replaces | Base URL | Manual | |---|---|---|---| | Analytics | Google Analytics, Plausible | https://analytics.agentfirststack.com | https://analytics.agentfirststack.com/llms.txt | | Tags | Google Tag Manager + server-side GTM | https://tags.agentfirststack.com | https://tags.agentfirststack.com/llms.txt | | Mail | A Gmail account per project, AgentMail | https://mail.agentfirststack.com | https://mail.agentfirststack.com/llms.txt | ## 3. Common tasks Set `K=$AGENTFIRSTSTACK_API_KEY` and `H="Authorization: Bearer $K"` first. ### Add analytics to a website ```sh A=https://analytics.agentfirststack.com curl -s -X POST $A/v1/sites -H "$H" -H 'content-type: application/json' -d '{"domain":"example.com"}' # -> site.id, site.snippet (