{"openapi":"3.1.0","info":{"title":"GrowPlease API","version":"1.0.0","description":"Read explicitly selected products and save unverified assistant drafts for owner review. Writes require a stable request_id for idempotent retries. No model calls, publishing, spending, approvals or customer contact tools."},"servers":[{"url":"https://growplease.com/api/v1"}],"paths":{"/profile":{"get":{"operationId":"get_profile","summary":"Identify the connected workspace and its permissions.","parameters":[],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}},"/products":{"get":{"operationId":"list_products","summary":"List only products selected for this connection.","parameters":[],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}},"/products/{product_id}/context":{"get":{"operationId":"get_product_context","summary":"Read saved product evidence and a context_version for draft writes.","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}},"/products/{product_id}/seo":{"get":{"operationId":"get_seo_workspace","summary":"Read saved SEO evidence and eligible workflow definitions.","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}},"/plans/{plan_id}":{"get":{"operationId":"get_growth_plan","summary":"Read a selected product’s frozen plan, results and rule-based review.","parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}},"/products/{product_id}/drafts":{"get":{"operationId":"list_drafts","summary":"Read the latest fifty saved assistant drafts.","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}},"post":{"operationId":"save_draft","summary":"Save an unverified experiment, copy or SEO draft; never approve or execute it.","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read","growplease:drafts:write"]},{"PersonalToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"request_id":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_:-]+$"},"context_version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"kind":{"type":"string","enum":["experiment","copy","seo"]},"title":{"type":"string","minLength":1,"maxLength":120},"body":{"type":"string","minLength":1,"maxLength":6000},"sources":{"default":[],"maxItems":8,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","minLength":1,"maxLength":1000}},"required":["label","url"],"additionalProperties":false}}},"required":["request_id","context_version","kind","title","body","sources"],"additionalProperties":false}}}},"responses":{"201":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"400":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"403":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"409":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}},"/products/{product_id}/observations":{"get":{"operationId":"list_observations","summary":"Read the latest twenty owner-entered or owner-accepted observations.","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read"]},{"PersonalToken":[]}],"responses":{"200":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"404":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}},"post":{"operationId":"propose_observation","summary":"Propose a result for explicit owner acceptance in GrowPlease. It is not active growth evidence yet.","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"GrowPleaseOAuth":["growplease:read","growplease:observations:write"]},{"PersonalToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"request_id":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_:-]+$"},"context_version":{"type":"string","pattern":"^[a-f0-9]{64}$"},"observation":{"type":"object","properties":{"kind":{"type":"string","enum":["community","feedback","objection","offer","cost","return","payment"]},"cohort":{"type":"string","enum":["unknown","complimentary","trial","paid","mixed"]},"note":{"type":"string","minLength":1,"maxLength":2000},"source":{"type":"string","minLength":1,"maxLength":300},"observed_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"}},"required":["kind","cohort","note","source","observed_at"],"additionalProperties":false}},"required":["request_id","context_version","observation"],"additionalProperties":false}}}},"responses":{"201":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"400":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"401":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"403":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."},"409":{"description":"Workspace-scoped JSON. Errors contain error and error_description; 401/403 include WWW-Authenticate."}}}}},"components":{"securitySchemes":{"GrowPleaseOAuth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://growplease.com/oauth/authorize","tokenUrl":"https://growplease.com/oauth/token","scopes":{"growplease:read":"Read selected product context and saved work.","growplease:drafts:write":"Save draft materials.","growplease:observations:write":"Propose observations for owner review."}}}},"PersonalToken":{"type":"http","scheme":"bearer","description":"Create a product-scoped token under Your account → AI assistants and API. Expires after ninety days."}}}}