{"openapi":"3.1.0","info":{"title":"Random Profiles API","version":"1.0.0","description":"Generate fake user profiles for seed and test data. Request an API key, then fetch random profiles with photos."},"servers":[{"url":"/"}],"paths":{"/v1/keys":{"post":{"summary":"Request an API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"API key created","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"}}}}}},"400":{"description":"Invalid email"},"429":{"description":"Rate limited"}}}},"/v1/profiles":{"get":{"summary":"List random profiles","security":[{"apiKey":[]}],"parameters":[{"name":"count","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}},{"name":"photo_size","in":"query","schema":{"type":"integer","enum":[64,128,256,512,1024],"default":1024}}],"responses":{"200":{"description":"List of profiles"},"401":{"description":"Invalid or missing API key"},"429":{"description":"Daily request limit reached for your tier"}}}},"/v1/profiles/{uuid}":{"get":{"summary":"Get a profile by UUID","security":[{"apiKey":[]}],"parameters":[{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Single profile"},"401":{"description":"Invalid or missing API key"},"404":{"description":"Profile not found"},"429":{"description":"Daily request limit reached for your tier"}}}},"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Service is healthy"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"X-API-Key","in":"header"}}}}