Projects

Create a project (fast mode)

Create a complete project in one call: project fields, prompts (queued for execution and categorization), collections tagging those prompts, competitors, weekly email subscription. With pitch true it creates a pitch project instead: a one-off snapshot for a prospect that runs once, takes no project slot and is deleted after 90 days unless converted; ERR_PLAN_REQUIRED when the account is below the Scale tier, on a trial or without approved pitch project access (error.meta.access says which), ERR_QUOTA_EXCEEDED when the month's pitch projects are used (error.meta.resets_on), ERR_INVALID_PARAM for more than 100 prompts or a domain the account tracks or pitched in the last 90 days. The response lists same_domain_projects so an accidental duplicate is visible; it never blocks the create. Its prompts get their first answers within about 24 hours, as far as the account's allowance of AI answers for the cycle covers them; the rest run when the allowance resets. Idempotent via external_identifier (embed-enabled accounts only; replay returns 200 with the existing project). Requires a read_write scope API key.

post/projects

Request

  • Base URL
    https://api.llmpulse.ai/api/v1
  • URL
    https://api.llmpulse.ai/api/v1/projects
  • Auth
    API key in header Authorization

Request body

website_urlstring uri required

Public HTTP(S) URL with a DNS hostname or public IP address. Credentials, private and special IP addresses, localhost and internal hostnames are rejected.

namestring required

Project name, as plain text. It can be changed later with PATCH /projects/{id}

main_countrystring required
main_languagestring required
brand_namestring
descriptionstring
industrystring[]

Industry keys, case-insensitive; a single key string is also accepted. An unknown key returns ERR_INVALID_PARAM listing the valid keys (the same list as the in-app industry picker, e.g. TECHNOLOGY, SAAS, ECOMMERCE)

business_modelstring

Business model key (e.g. B2B_SAAS, MARKETPLACE); unknown keys are rejected

business_model_otherstring

Free-text business model, only accepted when business_model is OTHER; rejected against any other key

target_audiencestring

Who the brand sells to. Context for Recommendations and GEO Writer (Brand Book)

brand_voicestring

Tone of voice guidance for generated content (Brand Book)

goalsstring

What the brand wants to achieve. Context for GEO Writer and prompt suggestions

primary_productsstring[]

Main products or services

matching_namesstring[]

Brand-name variants used to detect mentions. At most 50 names of up to 100 characters each; a longer list or name is refused with ERR_INVALID_PARAM (422) and nothing is created

promptsstring[]
use_subdomainboolean
weekly_email_subscribedboolean
external_identifierstring

Embed-enabled (Enterprise) accounts only; other accounts receive ERR_PLAN_REQUIRED. Idempotency key and embed-session join key, unique per account

execute_prompts_immediatelyboolean
pitchboolean

Create a pitch project, a one-off snapshot for a prospect. It runs its prompts once across the account's AI models right away, takes no project slot and its prompts do not count against the prompt quota, and it is deleted 90 days later unless converted by sending pitch false to PATCH /projects/{id}. It uses one of the month's pitch projects (GET /account, limits.pitch_projects), needs access approved for the account and a paid subscription on the Scale tier or higher, takes 1 to 100 prompts, and cannot use a domain the account already tracks or pitched in the last 90 days. execute_prompts_immediately must not be false

Example request

{
  "website_url": "https://acme.com",
  "name": "Acme",
  "main_country": "US",
  "main_language": "en",
  "industry": [
    "SAAS"
  ],
  "business_model": "B2B_SAAS",
  "collections": [
    {
      "name": "Comparisons",
      "prompts": [
        "top crm tools 2026"
      ]
    }
  ]
}

Response

Idempotent replay (existing external_identifier)

draft_idstring

The finalized draft; only present on POST /project_drafts/{id}/finalize

projectobject

Same shape as GET /dimensions/projects/{id}

idempotentboolean

Present and true only on external_identifier replays

request_idstring

Changes

No recorded changes to this operation across all 32 revisions of this API.