{"openapi":"3.1.0","info":{"title":"ACTVT Licensing API","version":"1.0.0"},"paths":{"/api/v1/health":{"get":{"tags":["health"],"summary":"Health Check","description":"Comprehensive health check endpoint.","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health/ready":{"get":{"tags":["health"],"summary":"Readiness Check","description":"Kubernetes readiness probe endpoint.","operationId":"readiness_check_api_v1_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health/live":{"get":{"tags":["health"],"summary":"Liveness Check","description":"Kubernetes liveness probe endpoint.","operationId":"liveness_check_api_v1_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/licenses/activate":{"post":{"tags":["licenses"],"summary":"Activate License","description":"Activate a license on a machine.","operationId":"activate_license_api_v1_licenses_activate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseActivate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseActivateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licenses/validate":{"post":{"tags":["licenses"],"summary":"Validate License","description":"Validate a license activation.","operationId":"validate_license_api_v1_licenses_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseValidate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseValidateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trial/start":{"post":{"tags":["licenses"],"summary":"Start Trial","description":"Mint (or recover) the one-time, server-granted 7-day trial for a machine.","operationId":"start_trial_api_v1_trial_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialStartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialStartResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licenses/deactivate":{"post":{"tags":["licenses"],"summary":"Deactivate License","description":"Deactivate a license on a machine.","operationId":"deactivate_license_api_v1_licenses_deactivate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseDeactivate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licenses/{license_key}/activations":{"get":{"tags":["licenses"],"summary":"Get License Activations","description":"Get all activations for a license.","operationId":"get_license_activations_api_v1_licenses__license_key__activations_get","parameters":[{"name":"license_key","in":"path","required":true,"schema":{"type":"string","title":"License Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MachineInfo"},"title":"Response Get License Activations Api V1 Licenses  License Key  Activations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licenses/check/{transaction_id}":{"get":{"tags":["licenses"],"summary":"Check License By Transaction","description":"Check if a license has been created for a given transaction ID.\nUsed by the frontend to poll for license availability after checkout.","operationId":"check_license_by_transaction_api_v1_licenses_check__transaction_id__get","parameters":[{"name":"transaction_id","in":"path","required":true,"schema":{"type":"string","title":"Transaction Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/paddle":{"post":{"tags":["webhooks"],"summary":"Handle Paddle Webhook","description":"Handle incoming Paddle webhooks.","operationId":"handle_paddle_webhook_api_v1_webhooks_paddle_post","parameters":[{"name":"Paddle-Signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paddle-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage/heartbeat":{"post":{"tags":["usage"],"summary":"Heartbeat","description":"Record daily usage heartbeat for a machine.\nThis endpoint uses upsert logic to update existing records or create new ones.","operationId":"heartbeat_api_v1_usage_heartbeat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeartbeatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeartbeatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subscribers":{"post":{"tags":["subscribers"],"summary":"Create Subscriber","description":"Subscribe an email for updates.","operationId":"create_subscriber_api_v1_subscribers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriberCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/outreach/send":{"post":{"tags":["outreach"],"summary":"Send Outreach","description":"Send bulk outreach emails. Secured with API key for Google Sheets integration.","operationId":"send_outreach_api_v1_outreach_send_post","parameters":[{"name":"X-API-Key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutreachRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutreachResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events":{"post":{"tags":["events"],"summary":"Ingest Events","description":"Accept a batch of analytics events from one install and one session.\n\nUnauthenticated like every other client endpoint; the batch cap, the shape\nchecks on the schema and the per-IP rate limit are the abuse control.\nIdempotent on event_id, so a client that lost the acknowledgement can send\nthe same batch again.","operationId":"ingest_events_api_v1_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"EventBatch":{"properties":{"install_id":{"type":"string","format":"uuid","title":"Install Id"},"session_id":{"type":"string","format":"uuid","title":"Session Id"},"app_version":{"type":"string","title":"App Version"},"os_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Version"},"events":{"items":{"$ref":"#/components/schemas/EventIn"},"type":"array","maxItems":500,"minItems":1,"title":"Events"}},"type":"object","required":["install_id","session_id","app_version","events"],"title":"EventBatch"},"EventBatchResponse":{"properties":{"accepted":{"type":"integer","title":"Accepted"},"dropped":{"type":"integer","title":"Dropped"}},"type":"object","required":["accepted","dropped"],"title":"EventBatchResponse"},"EventIn":{"properties":{"event_id":{"type":"string","format":"uuid","title":"Event Id"},"name":{"type":"string","title":"Name"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"props":{"additionalProperties":{"type":"string"},"type":"object","title":"Props"}},"type":"object","required":["event_id","name","occurred_at"],"title":"EventIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeartbeatRequest":{"properties":{"machine_id":{"type":"string","title":"Machine Id","description":"Unique machine identifier"},"machine_fingerprint":{"type":"object","title":"Machine Fingerprint","description":"Machine fingerprint data"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version","description":"Application version"},"os_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Version","description":"Operating system version"}},"type":"object","required":["machine_id","machine_fingerprint"],"title":"HeartbeatRequest"},"HeartbeatResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"HeartbeatResponse"},"LicenseActivate":{"properties":{"license_key":{"type":"string","title":"License Key"},"machine_fingerprint":{"type":"object","title":"Machine Fingerprint"},"install_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Install Id"}},"type":"object","required":["license_key","machine_fingerprint"],"title":"LicenseActivate"},"LicenseActivateResponse":{"properties":{"activation_id":{"type":"string","format":"uuid","title":"Activation Id"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"status":{"type":"string","title":"Status","default":"active"},"entitlement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entitlement"}},"type":"object","required":["activation_id","expires_at"],"title":"LicenseActivateResponse"},"LicenseCheckResponse":{"properties":{"license_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Key"},"status":{"type":"string","title":"Status"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"product_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Type"}},"type":"object","required":["status"],"title":"LicenseCheckResponse","description":"Response model for license check endpoint."},"LicenseDeactivate":{"properties":{"license_key":{"type":"string","title":"License Key"},"activation_id":{"type":"string","format":"uuid","title":"Activation Id"},"machine_id":{"type":"string","title":"Machine Id"}},"type":"object","required":["license_key","activation_id","machine_id"],"title":"LicenseDeactivate"},"LicenseValidate":{"properties":{"license_key":{"type":"string","title":"License Key"},"activation_id":{"type":"string","format":"uuid","title":"Activation Id"},"machine_id":{"type":"string","title":"Machine Id"},"install_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Install Id"},"usage_sharing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Usage Sharing"},"trigger":{"anyOf":[{"type":"string","enum":["startup","scheduled","foreground","wake","reconnect","manual"]},{"type":"null"}],"title":"Trigger"}},"type":"object","required":["license_key","activation_id","machine_id"],"title":"LicenseValidate"},"LicenseValidateResponse":{"properties":{"valid":{"type":"boolean","title":"Valid"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"days_until_expiry":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Until Expiry"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"status":{"type":"string","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"entitlement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entitlement"}},"type":"object","required":["valid","expires_at","status"],"title":"LicenseValidateResponse"},"MachineInfo":{"properties":{"machine_id":{"type":"string","title":"Machine Id"},"os_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Version"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"last_validated_at":{"type":"string","format":"date-time","title":"Last Validated At"},"validation_count":{"type":"integer","title":"Validation Count"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["machine_id","os_version","app_version","last_validated_at","validation_count","is_active"],"title":"MachineInfo"},"OutreachRecipient":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["email"],"title":"OutreachRecipient"},"OutreachRequest":{"properties":{"template":{"type":"string","enum":["personal","sellers","update_personal","update_sellers","pi_tutorials"],"title":"Template"},"language":{"type":"string","enum":["en","fr","de"],"title":"Language","default":"en"},"recipients":{"items":{"$ref":"#/components/schemas/OutreachRecipient"},"type":"array","maxItems":500,"minItems":1,"title":"Recipients"}},"type":"object","required":["template","recipients"],"title":"OutreachRequest"},"OutreachResponse":{"properties":{"total":{"type":"integer","title":"Total"},"sent":{"type":"integer","title":"Sent"},"failed":{"type":"integer","title":"Failed"},"results":{"items":{"$ref":"#/components/schemas/RecipientResult"},"type":"array","title":"Results"}},"type":"object","required":["total","sent","failed","results"],"title":"OutreachResponse"},"RecipientResult":{"properties":{"email":{"type":"string","title":"Email"},"success":{"type":"boolean","title":"Success"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id"}},"type":"object","required":["email","success"],"title":"RecipientResult"},"SubscriberCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"SubscriberCreate"},"SubscriberResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"subscribed_at":{"type":"string","format":"date-time","title":"Subscribed At"}},"type":"object","required":["id","email","subscribed_at"],"title":"SubscriberResponse"},"TrialStartRequest":{"properties":{"machine_fingerprint":{"type":"object","title":"Machine Fingerprint"},"install_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Install Id"}},"type":"object","required":["machine_fingerprint"],"title":"TrialStartRequest"},"TrialStartResponse":{"properties":{"license_key":{"type":"string","title":"License Key"},"activation_id":{"type":"string","format":"uuid","title":"Activation Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"features":{"items":{"type":"string"},"type":"array","title":"Features","default":[]},"status":{"type":"string","title":"Status","default":"active"},"tier":{"type":"string","title":"Tier","default":"trial"},"entitlement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entitlement"}},"type":"object","required":["license_key","activation_id","expires_at"],"title":"TrialStartResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebhookResponse":{"properties":{"status":{"type":"string","title":"Status"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Id"}},"type":"object","required":["status"],"title":"WebhookResponse"}}}}