Create a project
seo_project_createCreates a new programmatic-SEO project and returns its projectId. Call this when seo_project_list comes back empty — every other tool needs a projectId and a new account has none. The project is created EMPTY: it still needs a data source and a content spec before seo_content_generate will run, so call seo_project_get afterwards and read readinessNote. FREE — this call costs nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name, e.g. 'Plumbers by city'. The URL slug is derived from it automatically. | |
| domain | No | Optional custom domain the pages will be published on, e.g. 'example.com'. Omit to serve them under the platform's own domain. | |
| aiModel | No | Optional model id. Defaults to gemini-2.5-flash on the Gemini endpoint. | |
| aiApiKey | No | BYOK: the AI provider key this project runs on (stored encrypted). Recommended: a Google Gemini key from aistudio.google.com/apikey — its free tier works with no card. Omit to connect later via seo_project_connect_ai. | |
| template | No | Page template. Defaults to 'location'. | |
| aiBaseUrl | No | Optional OpenAI-compatible base URL for the key. Defaults to Google's Gemini endpoint. Example for OpenRouter: https://openrouter.ai/api/v1 | |
| perplexityApiKey | No | Optional Perplexity API key (api.perplexity.ai) to enable citation-bearing AI visibility checks for this project. Stored encrypted. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| slug | Yes | ||
| domain | Yes | ||
| nextStep | Yes | ||
| template | Yes | ||
| projectId | Yes | Pass this to every other tool. | |
| readyToGenerate | Yes | Always false here — a new project has no data source yet. |