{"openapi":"3.1.0","info":{"title":"Braveton Apps Agent and SDK API","version":"1.0"},"paths":{"/v1/apps/{slug}/session":{"post":{"summary":"Session","operationId":"session_v1_apps__slug__session_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/apps/{slug}/measurement":{"put":{"summary":"Consent","operationId":"consent_v1_apps__slug__measurement_put","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preference"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InstallationKey":[]}]}},"/v1/apps/{slug}/experiments/assign":{"post":{"summary":"Assign","operationId":"assign_v1_apps__slug__experiments_assign_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Context"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InstallationKey":[]}]}},"/v1/apps/{slug}/measurement/events":{"post":{"summary":"Events","operationId":"events_v1_apps__slug__measurement_events_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Batch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InstallationKey":[]}]}},"/v1/server/{slug}/conversions":{"post":{"summary":"Conversion","operationId":"conversion_v1_server__slug__conversions_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversion"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/capabilities":{"get":{"summary":"Capabilities","operationId":"capabilities_api_v1_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentKey":[]}]}},"/api/v1/apps":{"get":{"summary":"Agent Apps","operationId":"agent_apps_api_v1_apps_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentKey":[]}]},"post":{"summary":"Agent Create App","operationId":"agent_create_app_api_v1_apps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewProject"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentKey":[]}]}},"/api/v1/apps/{slug}/placements":{"post":{"summary":"Agent Placement","operationId":"agent_placement_api_v1_apps__slug__placements_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Placement"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentKey":[]}]}},"/api/v1/apps/{slug}/overview":{"get":{"summary":"Agent Overview","operationId":"agent_overview_api_v1_apps__slug__overview_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"environment","in":"query","required":false,"schema":{"enum":["test","production"],"type":"string","default":"test","title":"Environment"}},{"name":"language","in":"query","required":false,"schema":{"anyOf":[{"enum":["ru","en","fr","es"],"type":"string"},{"type":"null"}],"title":"Language"}},{"name":"entry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentKey":[]}]}},"/api/v1/apps/{slug}/experiments":{"post":{"summary":"Agent Create Experiment","operationId":"agent_create_experiment_api_v1_apps__slug__experiments_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Experiment"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentKey":[]}]}},"/api/v1/apps/{slug}/experiments/{eid}/action":{"post":{"summary":"Agent Action","operationId":"agent_action_api_v1_apps__slug__experiments__eid__action_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Eid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Action"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentKey":[]}]}},"/api/v1/apps/{slug}/experiments/{eid}/csv":{"get":{"summary":"Agent Export","operationId":"agent_export_api_v1_apps__slug__experiments__eid__csv_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Eid"}},{"name":"language","in":"query","required":false,"schema":{"anyOf":[{"enum":["ru","en","fr","es"],"type":"string"},{"type":"null"}],"title":"Language"}},{"name":"entry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentKey":[]}]}},"/v1/apps/{slug}/notifications/next":{"post":{"summary":"Notifications","operationId":"notifications_v1_apps__slug__notifications_next_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationContext"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"InstallationKey":[]}]}}},"components":{"schemas":{"Action":{"properties":{"action":{"type":"string","enum":["start","pause","resume","finish"],"title":"Action"}},"additionalProperties":false,"type":"object","required":["action"],"title":"Action"},"AgentKey":{"properties":{"label":{"type":"string","maxLength":80,"minLength":3,"title":"Label"},"scopes":{"items":{"type":"string","enum":["read","write","projects","production"]},"type":"array","maxItems":4,"minItems":1,"title":"Scopes"},"projects":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"Projects","default":[]},"days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Days","default":90}},"additionalProperties":false,"type":"object","required":["label","scopes"],"title":"AgentKey"},"Batch":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Event"},"type":"array","maxItems":30,"minItems":1,"title":"Items"}},"additionalProperties":false,"type":"object","required":["items"],"title":"Batch"},"Context":{"properties":{"language":{"type":"string","enum":["ru","en","fr","es"],"title":"Language"},"environment":{"type":"string","enum":["production","test"],"title":"Environment"},"app_version":{"type":"string","pattern":"^\\d{1,2}\\.\\d{1,2}\\.\\d{1,2}$","title":"App Version"}},"additionalProperties":false,"type":"object","required":["language","environment","app_version"],"title":"Context"},"Conversion":{"properties":{"id":{"type":"string","maxLength":128,"minLength":8,"pattern":"^[A-Za-z0-9:_-]+$","title":"Id"},"subject_id":{"type":"string","pattern":"^[a-f0-9]{64}$","title":"Subject Id"},"environment":{"type":"string","enum":["production","test"],"title":"Environment"},"original_id":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[A-Za-z0-9:_-]+$","title":"Original Id"},"transaction_id":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[A-Za-z0-9:_-]+$","title":"Transaction Id"},"started_at":{"type":"number","exclusiveMinimum":0.0,"title":"Started At"},"occurred_at":{"type":"number","exclusiveMinimum":0.0,"title":"Occurred At"},"kind":{"type":"string","enum":["trial","paid","refund"],"title":"Kind"},"price_milliunits":{"type":"integer","maximum":100000000.0,"minimum":0.0,"title":"Price Milliunits","default":0}},"additionalProperties":false,"type":"object","required":["id","subject_id","environment","original_id","transaction_id","started_at","occurred_at","kind"],"title":"Conversion"},"Event":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"assignment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignment Id"},"name":{"type":"string","title":"Name"},"environment":{"type":"string","enum":["production","test"],"title":"Environment"},"entry":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","title":"Entry","default":"overview"},"language":{"type":"string","enum":["ru","en","fr","es"],"title":"Language","default":"en"},"price_state":{"type":"string","enum":["ready","unavailable","unknown"],"title":"Price State","default":"unknown"},"eligibility":{"type":"string","enum":["trial","paid","unknown"],"title":"Eligibility","default":"unknown"}},"additionalProperties":false,"type":"object","required":["id","name","environment"],"title":"Event"},"Experiment":{"properties":{"name":{"type":"string","maxLength":100,"minLength":3,"title":"Name"},"slot":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","title":"Slot"},"environment":{"type":"string","enum":["test","production"],"title":"Environment","default":"test"},"goal":{"type":"string","enum":["subscription_started","cta","activation","notification_open","notification_activation"],"title":"Goal","default":"subscription_started"},"notification":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/NotificationVariant"},"type":"object"},{"type":"null"}],"title":"Notification"},"traffic":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Traffic","default":100},"variants":{"items":{"$ref":"#/components/schemas/Variant"},"type":"array","maxItems":2,"minItems":2,"title":"Variants"},"languages":{"items":{"type":"string","enum":["ru","en","fr","es"]},"type":"array","maxItems":4,"minItems":1,"title":"Languages"},"min_version":{"type":"string","pattern":"^\\d{1,2}\\.\\d{1,2}\\.\\d{1,2}$","title":"Min Version","default":"1.0.0"},"days":{"type":"integer","maximum":60.0,"minimum":7.0,"title":"Days","default":14},"min_sample":{"type":"integer","maximum":100000.0,"minimum":50.0,"title":"Min Sample","default":200}},"additionalProperties":false,"type":"object","required":["name","slot","variants","languages"],"title":"Experiment"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Login":{"properties":{"password":{"type":"string","maxLength":200,"minLength":1,"title":"Password"}},"additionalProperties":false,"type":"object","required":["password"],"title":"Login"},"NewProject":{"properties":{"name":{"type":"string","maxLength":70,"minLength":2,"title":"Name"},"slug":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,39}$","title":"Slug"},"platform":{"type":"string","enum":["ios","android","web","other"],"title":"Platform","default":"ios"},"bundle":{"type":"string","maxLength":160,"title":"Bundle","default":""},"slot":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","title":"Slot","default":"paywall"},"variants":{"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2,"title":"Variants","default":["control","value"]}},"additionalProperties":false,"type":"object","required":["name","slug"],"title":"NewProject"},"NotificationContext":{"properties":{"language":{"type":"string","enum":["ru","en","fr","es"],"title":"Language"},"environment":{"type":"string","enum":["production","test"],"title":"Environment"},"app_version":{"type":"string","pattern":"^\\d{1,2}\\.\\d{1,2}\\.\\d{1,2}$","title":"App Version"},"permission_granted":{"type":"boolean","title":"Permission Granted"}},"additionalProperties":false,"type":"object","required":["language","environment","app_version","permission_granted"],"title":"NotificationContext"},"NotificationCopy":{"properties":{"title":{"type":"string","maxLength":80,"minLength":1,"title":"Title"},"body":{"type":"string","maxLength":240,"minLength":1,"title":"Body"},"route":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","title":"Route","default":"home"}},"additionalProperties":false,"type":"object","required":["title","body"],"title":"NotificationCopy"},"NotificationVariant":{"properties":{"messages":{"additionalProperties":{"$ref":"#/components/schemas/NotificationCopy"},"propertyNames":{"enum":["ru","en","fr","es"]},"type":"object","title":"Messages"},"local_hour":{"type":"integer","maximum":23.0,"minimum":0.0,"title":"Local Hour","default":9},"local_minute":{"type":"integer","maximum":59.0,"minimum":0.0,"title":"Local Minute","default":0}},"additionalProperties":false,"type":"object","required":["messages"],"title":"NotificationVariant"},"Placement":{"properties":{"slot":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","title":"Slot"},"variants":{"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2,"title":"Variants"}},"additionalProperties":false,"type":"object","required":["slot","variants"],"title":"Placement"},"Preference":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"additionalProperties":false,"type":"object","required":["enabled"],"title":"Preference"},"Ready":{"properties":{"ready":{"type":"boolean","title":"Ready"}},"additionalProperties":false,"type":"object","required":["ready"],"title":"Ready"},"Session":{"properties":{"installation_key":{"type":"string","pattern":"^[A-Za-z0-9_-]{40,128}$","title":"Installation Key"}},"additionalProperties":false,"type":"object","required":["installation_key"],"title":"Session"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Variant":{"properties":{"key":{"type":"string","title":"Key"},"weight":{"type":"integer","maximum":90.0,"minimum":10.0,"title":"Weight"}},"additionalProperties":false,"type":"object","required":["key","weight"],"title":"Variant"}},"securitySchemes":{"AgentKey":{"type":"http","scheme":"bearer","description":"Scoped agent key created by the owner. Never embed in client apps."},"InstallationKey":{"type":"http","scheme":"bearer","description":"Random per-installation key registered within one app."}}},"servers":[{"url":"https://apps.braveton.com"}]}