Visit APIToGo on LinkedIn
  • Documentation
  • Components
  • Themes
Quickstart
CLI
MCP
Configuration
    Configuration overviewPortalProtect your API with the gatewaySign-inPlansAPI referenceMake config
Look and feel
Writing
Guides
Deployment
powered by apitogo
Configuration

Configuration overview

An APItoGo project is described by apitogo.config.json at the root of your folder. It has one section per service. Leave a section out and that service is not part of the project.

apitogo.config.json
{ "version": 2, "project": { "name": "Books API" }, "portal": { "landing": "apitogo/portal/landing/LandingPage.tsx", "footer": "apitogo/portal/footer/Footer.tsx", "docs": { "content": ["apitogo/portal/pages/**/*.{md,mdx}"] } }, "gateway": { "origin": { "mode": "managed", "source": "server", "runtime": "nodejs" }, "specs": ["apitogo/apis/openapi.yaml"] }, "identity": {}, "plans": {} }

apitogo create and apitogo add write this file for you, and apitogo config changes it. You can also edit it by hand: apitogo check tells you what is wrong before anything is deployed.

Sections

SectionWhat it isReference
versionAlways 2
projectThe project's name, and its id once apitogo project create has linked itBelow
portalThe developer portal: docs pages, home page, footer, logo, theme, consolePortal
gatewayYour API behind the gateway: where it runs, its OpenAPI files, the rulesGateway
identitySign-in for the people who use your portalSign-in
plansThe plans people pick, and Stripe for the paid onesPlans

The API page of the portal is made from the gateway's OpenAPI files. See API reference.

The folder

Everything the services use, besides the config, lives in the apitogo/ folder:

Code
apitogo.config.json apitogo/ ├─ plans.json the plans (when the project has plans) ├─ apis/openapi.yaml your OpenAPI file (or wherever gateway.specs points) └─ portal/ ├─ pages/ docs pages: Markdown (.md, .mdx) and React (.tsx) ├─ landing/LandingPage.tsx the home page ├─ footer/Footer.tsx the footer ├─ theme.json colors and fonts └─ public/ images and files served as they are (logo.svg, ...)

apitogo/.state/ holds what the CLI generates and what it deployed. It ignores itself in git, and you never edit it.

project

Code
"project": { "id": "fe3a12b0-fbaf-4315-b37f-b731d930ee57", "name": "Books API" }
  • name: the project's name, used as the portal's name unless portal.name says otherwise.
  • id: the platform project this folder deploys to. apitogo project create writes it, and apitogo project use <id> moves the folder to another project. See CLI commands.

Secrets

The config never holds a secret. Where a service needs one (a Stripe key, an OIDC client secret), it names a project secret:

Code
"plans": { "billing": { "apiKey": "secret:STRIPE_API_KEY" } }

Store the value with apitogo secrets set STRIPE_API_KEY. Deploy asks for the secrets it needs and stores them for you. A value written straight into the config is refused.

Check before you deploy

TerminalCode
apitogo check

check reads the config and the files it names, and says what is missing or wrong, with a hint for each problem. deploy runs the same checks first.

Last modified on November 10, 2026
MCP toolsConfiguration overview
On this page
  • Sections
  • The folder
  • project
  • Secrets
  • Check before you deploy
JSON
JSON
JSON