{"openapi":"3.1.0","info":{"title":"Aura++ Partner Premium Submit API","version":"1.0.0","summary":"Submit Premium Aura++ launches under a Premium Launcher license.","description":"Authenticate with a Premium Launcher license key (Bearer).\n\nProjects are created under the license-linked Aura++ account and scheduled as Premium launches without a separate Stripe charge.\n\nHuman docs: https://auraplusplus.com/partners/premium-submit-api\n\nAgent index: https://auraplusplus.com/llms.txt","contact":{"name":"Aura++","email":"hi@auraplusplus.com","url":"https://auraplusplus.com/contact"}},"servers":[{"url":"https://auraplusplus.com/api/partner/v1","description":"Production Partner API v1"}],"tags":[{"name":"Partner","description":"License-authenticated partner endpoints for Premium launches."}],"components":{"securitySchemes":{"PartnerLicense":{"type":"http","scheme":"bearer","description":"Premium Launcher license key. Send as `Authorization: Bearer <license_key>`."}},"schemas":{"ApiError":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message and resolution hint."},"code":{"type":"string","description":"Machine-readable error code for agents.","examples":["missing_auth","invalid_license","invalid_json","validation_error","invalid_categories","url_exists","date_full","daily_limit","invalid_range","server_error"]}}},"Category":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"AvailabilityDate":{"type":"object","required":["date","premiumSlots"],"properties":{"date":{"type":"string","format":"date","description":"YYYY-MM-DD (UTC launch day)"},"premiumSlots":{"type":"integer","description":"Remaining Premium slots for this date for the license account."}}},"ProjectSubmitRequest":{"type":"object","required":["customerEmail","name","websiteUrl","description","logoUrl","productImageUrl","categories","techStack","platforms","pricing","makerName","launchDate"],"properties":{"customerEmail":{"type":"string","format":"email"},"name":{"type":"string","maxLength":120},"websiteUrl":{"type":"string","format":"uri"},"description":{"type":"string","description":"Project description (≥ 200 words)."},"logoUrl":{"type":"string","format":"uri","description":"HTTPS logo URL"},"productImageUrl":{"type":"string","format":"uri","description":"HTTPS product image URL"},"categories":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string"},"description":"Category IDs from GET /categories"},"techStack":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"string"}},"platforms":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Platform enum values from Aura++ schema"},"pricing":{"type":"string","description":"Pricing enum value"},"pricingDetails":{"type":"string","nullable":true},"makerName":{"type":"string","maxLength":120},"githubUrl":{"type":"string","format":"uri","nullable":true},"twitterUrl":{"type":"string","format":"uri","nullable":true},"launchDate":{"type":"string","format":"date","description":"Must be available in GET /availability"}}},"ProjectSubmitResponse":{"type":"object","properties":{"ok":{"type":"boolean"},"projectId":{"type":"string"},"slug":{"type":"string"},"launchDate":{"type":"string","format":"date"},"projectUrl":{"type":"string","format":"uri"}}}}},"security":[{"PartnerLicense":[]}],"paths":{"/availability":{"get":{"operationId":"getPartnerPremiumAvailability","tags":["Partner"],"summary":"List bookable Premium launch dates","description":"Returns Premium dates still available for the license-linked Aura++ account within the Premium scheduling window.","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Optional start date (YYYY-MM-DD). Clamped to Premium window."},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Optional end date (YYYY-MM-DD). Clamped to Premium window."}],"responses":{"200":{"description":"Availability payload","content":{"application/json":{"schema":{"type":"object","properties":{"launchType":{"type":"string","example":"premium"},"dates":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityDate"}}}}}}},"400":{"description":"Invalid range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid license","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/categories":{"get":{"operationId":"listPartnerCategories","tags":["Partner"],"summary":"List Aura++ categories","description":"Category id/name pairs for mapping form labels to IDs on submit.","responses":{"200":{"description":"Category list","content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/Category"}}}}}}},"401":{"description":"Missing or invalid license","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/projects":{"post":{"operationId":"submitPartnerPremiumProject","tags":["Partner"],"summary":"Submit and schedule a Premium launch","description":"Creates a project under the license-linked account and schedules a Premium launch. Errors return structured JSON with `error` + `code`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSubmitRequest"}}}},"responses":{"200":{"description":"Project created and scheduled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSubmitResponse"}}}},"400":{"description":"Validation or business rule error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid license","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict (e.g. website URL already exists)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}}}