{"info":{"description":"Hey API REST backend","title":"Hey API","version":"1.0.0"},"openapi":"3.1.1","servers":[],"components":{"securitySchemes":{"ApiKey":{"description":"API key","scheme":"bearer","type":"http"},"Clerk":{"bearerFormat":"JWT","description":"Clerk JWT token","scheme":"bearer","type":"http"}},"schemas":{"Specification":{"type":"object","properties":{"api_key_id":{"type":["string","null"],"format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"actor":{"type":["string","null"],"example":"mrlubos"},"actor_id":{"type":["string","null"],"example":"12529395"},"branch":{"type":["string","null"],"example":"feat/awesome-feature"},"branch_base":{"type":["string","null"],"example":"main"},"ci_platform":{"type":["string","null"],"example":"github"},"commit_sha":{"type":["string","null"],"example":"1c6945d83eab3580791eb4148562b3bd2e16df14"},"creator_user_id":{"type":["string","null"],"format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"event_name":{"type":["string","null"],"example":"push"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"job":{"type":["string","null"],"example":"ci"},"project_id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"ref":{"type":["string","null"],"example":"refs/heads/main"},"ref_type":{"type":["string","null"],"example":"branch"},"repository":{"type":["string","null"],"example":"hey-api/platform"},"run_id":{"type":["string","null"],"example":"13448896305"},"run_number":{"type":["string","null"],"example":"1"},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"tags":{"type":"array","items":{"type":"string"},"example":["dev"]},"version":{"type":["string","null"],"example":"1.0.0"},"workflow":{"type":["string","null"],"example":"CI"}},"required":["api_key_id","actor","actor_id","branch","branch_base","ci_platform","commit_sha","creator_user_id","created_at","event_name","id","job","project_id","ref","ref_type","repository","run_id","run_number","updated_at","tags","version","workflow"]},"CursorResponse":{"type":"object","properties":{"end_cursor":{"type":["string","null"],"format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"has_next_page":{"type":["boolean","null"],"example":true},"has_previous_page":{"type":["boolean","null"],"example":true},"start_cursor":{"type":["string","null"],"format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"}},"required":["end_cursor","has_next_page","has_previous_page","start_cursor"]},"Organization":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"creator_user_id":{"type":["string","null"],"format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"name":{"type":"string","example":"Hey API"},"slug":{"type":"string","example":"hey-api"},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["created_at","creator_user_id","id","name","slug","updated_at"]},"Role":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"organization_id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"status":{"type":"string","enum":["active","invited","suspended"],"example":"active"},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"user_id":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"}},"required":["created_at","id","organization_id","status","updated_at","user_id"]},"User":{"type":"object","properties":{"clerk_user_id":{"type":["string","null"],"example":"user_2tDpMYgevIkZOL76Wo6VzXxsbxD"},"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"email":{"type":["string","null"],"example":"lubos@heyapi.dev"},"first_name":{"type":["string","null"],"example":"Lubos"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"image_url":{"type":["string","null"],"example":"https://img.clerk.com/eyJ0eXBlIjoicHJveHkiLCJzcmMiOiJodHRwczovL2ltYWdlcy5jbGVyay5kZXYvdXBsb2FkZWQvaW1nXzJ0RzFucjNDbzg2azhDTWNoUlBxTHViVEdtTiJ9"},"last_name":{"type":["string","null"],"example":"Menus"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["clerk_user_id","created_at","email","first_name","id","image_url","last_name","updated_at"]},"Project":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"creator_user_id":{"type":["string","null"],"format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"default_branch":{"type":["string","null"],"example":"main"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"name":{"type":"string","example":"Backend"},"organization_id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"slug":{"type":"string","example":"backend"},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["created_at","creator_user_id","default_branch","id","name","organization_id","slug","updated_at"]},"ApiKeyConcealed":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"creator_user_id":{"type":["string","null"],"format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"last_used_at":{"type":["string","null"],"format":"date-time","example":"2025-02-21T02:37:15.840Z"},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["created_at","creator_user_id","id","last_used_at","updated_at"]},"ApiKey":{"allOf":[{"$ref":"#/components/schemas/ApiKeyConcealed"},{"type":"object","properties":{"value":{"type":"string","example":"xx_xxxx_xxxx_xxxxxxxxxxxxxxxxxxxxxxxx"}},"required":["value"]}]},"WebhookConcealed":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"creator_user_id":{"type":["string","null"],"format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"endpoint":{"type":"string","example":"https://example.com/api/webhooks"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"is_enabled":{"type":"boolean","example":true},"project_id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["created_at","creator_user_id","endpoint","id","is_enabled","project_id","updated_at"]},"Webhook":{"allOf":[{"$ref":"#/components/schemas/WebhookConcealed"},{"type":"object","properties":{"secret":{"type":"string","example":"whsec_666a85c7f7ce8c891be0f650b21d0749"}},"required":["secret"]}]},"WaitlistFeature":{"type":"string","enum":["analytics","changelogs","integrations","mcp","mocks","sdks","tests"],"example":"sdks"},"Waitlist":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"},"feature":{"$ref":"#/components/schemas/WaitlistFeature"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"tags":{"type":"array","items":{"type":"string"},"example":["typescript"]},"updated_at":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["created_at","feature","id","tags","updated_at"]}},"parameters":{}},"paths":{"/":{"get":{"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string","example":"Hey API Backend v1.0.0 👋"}}}}}}},"/v1/get/{organization_slug}/{project_slug}":{"get":{"security":[{"ApiKey":[]},{"Clerk":[]},{}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","example":"xx_xxxx_xxxx_xxxxxxxxxxxxxxxxxxxxxxxx"},"required":false,"name":"api_key","in":"query"},{"schema":{"type":"string","example":"feat/awesome-feature"},"required":false,"name":"branch","in":"query"},{"schema":{"type":"string","example":"1c6945d83eab3580791eb4148562b3bd2e16df14"},"required":false,"name":"commit_sha","in":"query"},{"schema":{"type":"boolean","default":false,"example":true},"required":false,"name":"inline","in":"query"},{"schema":{"type":"boolean","example":true},"required":false,"name":"latest","in":"query"},{"schema":{"type":"string","example":"dev"},"required":false,"name":"tags","in":"query"},{"schema":{"type":"string","example":"1.0.0"},"required":false,"name":"version","in":"query"}],"responses":{"200":{"description":"Specification file contents","content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}},"application/octet-stream":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/internal/sync-users":{"post":{"security":[{"Clerk":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"numAffectedRows":{"type":"string","pattern":"^d+$","example":"1"}},"required":["numAffectedRows"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/internal/webhooks/clerk":{"post":{"security":[{"Clerk":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"created_at":{"type":"number"},"email_addresses":{"type":"array","items":{"type":"object","properties":{"created_at":{"type":"number"},"email_address":{"type":"string"},"id":{"type":"string"},"linked_to":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"]}},"updated_at":{"type":"number"},"verification":{"type":"object","properties":{"attempts":{"type":["number","null"]},"expire_at":{"type":["number","null"]},"status":{"type":"string"},"strategy":{"type":"string"}},"required":["attempts","expire_at","status","strategy"]}},"required":["created_at","email_address","id","linked_to","updated_at","verification"]}},"first_name":{"type":["string","null"]},"has_image":{"type":"boolean"},"id":{"type":"string","example":"user_2tDpMYgevIkZOL76Wo6VzXxsbxD"},"image_url":{"type":["string","null"]},"last_active_at":{"type":["number","null"]},"last_name":{"type":["string","null"]},"last_sign_in_at":{"type":["number","null"]},"mfa_disabled_at":{"type":["number","null"]},"mfa_enabled_at":{"type":["number","null"]},"passkeys":{"type":"array","items":{"type":"object","properties":{}}},"password_enabled":{"type":"boolean"},"phone_numbers":{"type":"array","items":{"type":"object","properties":{}}},"primary_email_address_id":{"type":["string","null"]},"primary_phone_number_id":{"type":["string","null"]},"profile_image_url":{"type":["string","null"]},"two_factor_enabled":{"type":"boolean"},"updated_at":{"type":"number"},"username":{"type":["string","null"]}},"required":["created_at","email_addresses","first_name","has_image","id","image_url","last_active_at","last_name","last_sign_in_at","mfa_disabled_at","mfa_enabled_at","passkeys","password_enabled","phone_numbers","primary_email_address_id","primary_phone_number_id","profile_image_url","two_factor_enabled","updated_at","username"]},"type":{"type":"string","enum":["user.created","user.updated"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{"deleted":{"type":"boolean"},"id":{"type":"string","example":"user_2tDpMYgevIkZOL76Wo6VzXxsbxD"}},"required":["deleted","id"]},"type":{"type":"string","enum":["user.deleted"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"org_2tXIkBfPSwS6wkcyABwOQ0hpafD"}},"required":["id"]},"type":{"type":"string","enum":["organization.created","organization.updated"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"org_2tXIkBfPSwS6wkcyABwOQ0hpafD"}},"required":["id"]},"type":{"type":"string","enum":["organization.deleted"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"orgmem_2tXIk9zQFCokdnEaHZruFDjCT10"}},"required":["id"]},"type":{"type":"string","enum":["organizationMembership.created","organizationMembership.updated"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"orgmem_2tXIk9zQFCokdnEaHZruFDjCT10"}},"required":["id"]},"type":{"type":"string","enum":["organizationMembership.deleted"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{}},"type":{"type":"string","enum":["role.created","role.updated"]}},"required":["data","type"]},{"type":"object","properties":{"data":{"type":"object","properties":{}},"type":{"type":"string","enum":["role.deleted"]}},"required":["data","type"]}]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"OK"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/internal/webhooks/hey-api":{"post":{"security":[{"Clerk":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Specification"},"id":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"object":{"type":"string","enum":["event"]},"timestamp":{"type":"number"},"type":{"type":"string","enum":["specification.created","specification.deleted"]}},"required":["data","id","object","timestamp","type"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"OK"}},"required":["message"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"Hey API"}},"required":["name"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/members":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/User"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"example":["lubos@heyapi.dev","una@heyapi.dev"]}},"required":["emails"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}}},"required":["users"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/members/{user_id}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Project"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"Backend"}},"required":["name"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/api-keys":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyConcealed"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/api-keys/{api_key_id}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"api_key_id","in":"path"},{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"api_key_id","in":"path"},{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/specifications":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Specification"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/specifications/{specification_id}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"specification_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specification"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"specification_id","in":"path"},{"schema":{"type":"boolean","default":false,"example":true},"required":false,"name":"inline","in":"query"}],"responses":{"200":{"description":"Specification file contents","content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}},"application/octet-stream":{"schema":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/specifications/{specification_id}/url":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"specification_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://example.com/e4ce4324-1177-47ca-aeef-b1d011bd3932.json"}},"required":["url"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/webhooks":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/WebhookConcealed"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string","example":"https://example.com/api/webhooks"}},"required":["endpoint"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/organizations/{organization_slug}/projects/{project_slug}/webhooks/{webhook_id}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"webhook_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"webhook_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookConcealed"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","example":"hey-api"},"required":true,"name":"organization_slug","in":"path"},{"schema":{"type":"string","example":"backend"},"required":true,"name":"project_slug","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"webhook_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/specifications":{"post":{"security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"actor":{"type":"string","example":"mrlubos"},"actor_id":{"type":"string","example":"12529395"},"branch":{"type":"string","example":"feat/cool-feature"},"branch_base":{"type":"string","example":"main"},"ci_platform":{"type":"string","example":"github"},"commit_sha":{"type":"string","example":"678e8b7a0d1f495c4a6d011fb76c136955c7f260"},"default_branch":{"type":"string","example":"main"},"dry_run":{"type":"string","example":false},"event_name":{"type":"string","example":"pull_request"},"job":{"type":"string","example":"ci"},"ref":{"type":"string","example":"refs/pull/1/merge"},"ref_type":{"type":"string","example":"branch"},"repository":{"type":"string","example":"hey-api/platform"},"run_id":{"type":"string","example":"13432046322"},"run_number":{"type":"string","example":"1"},"specification":{"type":"string","format":"binary"},"tags":{"type":"string","example":"dev"},"workflow":{"type":"string","example":"CI"}},"required":["specification"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Specification"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"413":{"description":"Content Too Large","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/users/me":{"get":{"security":[{"Clerk":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/users/{user_id}/api-keys":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyConcealed"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/users/{user_id}/api-keys/{api_key_id}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"api_key_id","in":"path"},{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"api_key_id","in":"path"},{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/users/{user_id}/roles":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Role"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/users/{user_id}/waitlists":{"get":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"after","in":"query"},{"schema":{"type":"string","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":false,"name":"before","in":"query"},{"schema":{"type":"integer","exclusiveMinimum":0,"maximum":100,"default":10,"example":10},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/CursorResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Waitlist"}}},"required":["filters","items"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"post":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"feature":{"$ref":"#/components/schemas/WaitlistFeature"}},"required":["feature"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Waitlist"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}},"/v1/users/{user_id}/waitlists/{waitlist_id}":{"delete":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"waitlist_id","in":"path"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Waitlist"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}},"put":{"security":[{"Clerk":[]}],"parameters":[{"schema":{"type":"string","format":"uuid","example":"5d2827a4-b3fc-4946-bb3b-72f23e89c6aa"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","format":"uuid","example":"e4ce4324-1177-47ca-aeef-b1d011bd3932"},"required":true,"name":"waitlist_id","in":"path"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"},"example":["typescript"]}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Waitlist"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","example":"Unauthorized"},"request_id":{"type":"string","example":"req_1234567890"},"status":{"type":"integer","minimum":400,"exclusiveMaximum":600,"example":400},"timestamp":{"type":"string","format":"date-time","example":"2025-02-21T02:37:15.840Z"}},"required":["message","request_id","status","timestamp"]}},"required":["error"]}}}}}}}},"webhooks":{}}