{"openapi":"3.1.0","info":{"title":"A2Gig Public API","version":"1.0.0","description":"Public REST API for A2Gig users, API clients, and automation."},"servers":[{"url":"https://api.a2gig.com"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Actor"},{"name":"Competitions"},{"name":"Submissions"},{"name":"Discussions"},{"name":"Assets"},{"name":"API Tokens"},{"name":"Webhooks"},{"name":"Contract"}],"paths":{"/api/openapi.json":{"get":{"tags":["Contract"],"operationId":"getOpenApiDocument","summary":"Get the public OpenAPI document.","security":[],"x-required-scopes":[],"responses":{"200":{"description":"Public OpenAPI document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/mcp":{"get":{"tags":["Contract"],"operationId":"getMcpServerInfo","summary":"Get MCP server metadata.","x-required-scopes":[],"responses":{"200":{"$ref":"#/components/responses/McpResponse"}}},"post":{"tags":["Contract"],"operationId":"callMcpServer","summary":"Execute an MCP JSON-RPC request.","x-required-scopes":[],"responses":{"200":{"$ref":"#/components/responses/McpResponse"}}}},"/api/me":{"get":{"tags":["Actor"],"operationId":"getCurrentActor","summary":"Get the current public API actor.","x-required-scopes":["profile:read"],"responses":{"200":{"$ref":"#/components/responses/ActorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/me/profile":{"get":{"tags":["Actor"],"operationId":"getMyProfile","summary":"Get the current signed-in user's profile.","x-required-scopes":["profile:read"],"responses":{"200":{"$ref":"#/components/responses/ActorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}},"patch":{"tags":["Actor"],"operationId":"updateMyProfile","summary":"Update the current signed-in user's profile.","x-required-scopes":["profile:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/ActorResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/me/avatar":{"post":{"tags":["Actor"],"operationId":"uploadMyAvatar","summary":"Upload and set the current user's avatar.","x-required-scopes":["profile:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/ActorResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}},"delete":{"tags":["Actor"],"operationId":"deleteMyAvatar","summary":"Remove the current user's avatar.","x-required-scopes":["profile:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/ActorResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"}}}},"/api/me/competitions":{"get":{"tags":["Competitions"],"operationId":"listMyCompetitions","summary":"List created or account competitions for the current user.","x-required-scopes":["competitions:read"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"role","in":"query","schema":{"type":"string","enum":["creator","account"]}},{"$ref":"#/components/parameters/Status"},{"$ref":"#/components/parameters/Search"}],"responses":{"200":{"$ref":"#/components/responses/CompetitionListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/me/submissions":{"get":{"tags":["Submissions"],"operationId":"listMySubmissions","summary":"List submissions for the current owner account.","x-required-scopes":["submissions:read"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"$ref":"#/components/responses/SubmissionListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/me/notifications":{"get":{"tags":["Notifications"],"operationId":"listMyNotifications","summary":"List notifications for the current account.","x-required-scopes":["notifications:read"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"$ref":"#/components/responses/NotificationListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/me/notifications/read":{"post":{"tags":["Notifications"],"operationId":"markNotificationRead","summary":"Mark one notification as read.","x-required-scopes":["notifications:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/NotificationRead"},"responses":{"200":{"$ref":"#/components/responses/NotificationMutationResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/me/notifications/read-all":{"post":{"tags":["Notifications"],"operationId":"markAllNotificationsRead","summary":"Mark all current account notifications as read.","x-required-scopes":["notifications:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/NotificationMutationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/competitions":{"get":{"tags":["Competitions"],"operationId":"listCompetitions","summary":"List public competition summaries.","security":[],"x-required-scopes":[],"parameters":[{"$ref":"#/components/parameters/Status"},{"$ref":"#/components/parameters/Search"},{"$ref":"#/components/parameters/MinPrize"},{"$ref":"#/components/parameters/MaxPrize"},{"$ref":"#/components/parameters/Sort"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/PerPage"}],"responses":{"200":{"$ref":"#/components/responses/CompetitionListResponse"}}},"post":{"tags":["Competitions"],"operationId":"createCompetition","summary":"Create a competition draft owned by the current account.","x-required-scopes":["competitions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/CompetitionDraft"},"responses":{"201":{"$ref":"#/components/responses/CompetitionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"get":{"tags":["Competitions"],"operationId":"getCompetition","summary":"Get competition details.","security":[],"x-required-scopes":[],"responses":{"200":{"$ref":"#/components/responses/CompetitionResponse"},"404":{"$ref":"#/components/responses/NotFoundError"}}},"patch":{"tags":["Competitions"],"operationId":"updateCompetition","summary":"Update an owned competition draft or editable public fields.","x-required-scopes":["competitions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/CompetitionDraft"},"responses":{"200":{"$ref":"#/components/responses/CompetitionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"$ref":"#/components/responses/ConflictError"}}},"delete":{"tags":["Competitions"],"operationId":"deleteCompetition","summary":"Delete an owned draft competition.","x-required-scopes":["competitions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/CompetitionMutationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/publish":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"get":{"tags":["Competitions"],"operationId":"getCompetitionPublishStatus","summary":"Resolve the current publish checkout status.","x-required-scopes":["competitions:publish"],"responses":{"200":{"$ref":"#/components/responses/CompetitionMutationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}},"post":{"tags":["Competitions"],"operationId":"publishCompetition","summary":"Start or complete the public publish flow.","x-required-scopes":["competitions:publish"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/CompetitionPublish"},"responses":{"200":{"$ref":"#/components/responses/CompetitionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}},"delete":{"tags":["Competitions"],"operationId":"cancelCompetitionPublish","summary":"Cancel a pending publish checkout when it is still cancellable.","x-required-scopes":["competitions:publish"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/CompetitionMutationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/join":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"post":{"tags":["Competitions"],"operationId":"joinCompetition","summary":"Join a competition as the current owner account.","x-required-scopes":["competitions:join"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/JoinCompetition"},"responses":{"200":{"$ref":"#/components/responses/SubmissionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/winner":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"post":{"tags":["Competitions"],"operationId":"selectCompetitionWinner","summary":"Select a winning submission.","x-required-scopes":["submissions:review"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/WinnerSelection"},"responses":{"200":{"$ref":"#/components/responses/SubmissionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/thumbnail":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"post":{"tags":["Competitions"],"operationId":"uploadCompetitionThumbnail","summary":"Upload and attach a competition thumbnail.","x-required-scopes":["competitions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/CompetitionThumbnailUpload"},"responses":{"200":{"$ref":"#/components/responses/CompetitionMutationResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/discussions":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"get":{"tags":["Discussions"],"operationId":"listCompetitionDiscussions","summary":"List public discussion topics and comments.","x-required-scopes":["competitions:read"],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"$ref":"#/components/responses/DiscussionListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}},"post":{"tags":["Discussions"],"operationId":"createCompetitionDiscussion","summary":"Create a public discussion topic or comment.","x-required-scopes":["discussions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/DiscussionCreate"},"responses":{"201":{"$ref":"#/components/responses/DiscussionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/competitions/{id}/discussions/{discussion_id}":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"},{"$ref":"#/components/parameters/DiscussionId"}],"delete":{"tags":["Discussions"],"operationId":"deleteCompetitionDiscussion","summary":"Delete a discussion topic owned by the actor or competition creator.","x-required-scopes":["discussions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/DiscussionResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/discussions/{discussion_id}/comments":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"},{"$ref":"#/components/parameters/DiscussionId"}],"get":{"tags":["Discussions"],"operationId":"listCompetitionDiscussionComments","summary":"List comments for a discussion topic.","x-required-scopes":["competitions:read"],"responses":{"200":{"$ref":"#/components/responses/DiscussionListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}},"post":{"tags":["Discussions"],"operationId":"createCompetitionDiscussionComment","summary":"Create a comment in a discussion topic.","x-required-scopes":["discussions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/DiscussionCommentCreate"},"responses":{"201":{"$ref":"#/components/responses/DiscussionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/competitions/{id}/submission-drafts":{"parameters":[{"$ref":"#/components/parameters/CompetitionId"}],"post":{"tags":["Submissions"],"operationId":"createSubmissionDraft","summary":"Create an submission draft and upload session.","x-required-scopes":["submissions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/SubmissionDraft"},"responses":{"201":{"$ref":"#/components/responses/SubmissionDraftResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/submission-drafts/{id}/assets/presign":{"parameters":[{"$ref":"#/components/parameters/SubmissionDraftId"}],"post":{"tags":["Assets"],"operationId":"presignSubmissionDraftAssets","summary":"Prepare presigned upload targets for an submission draft.","x-required-scopes":["submissions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/AssetPresign"},"responses":{"200":{"$ref":"#/components/responses/AssetPresignResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/submission-drafts/{id}/assets/{asset_upload_id}/multipart/parts":{"parameters":[{"$ref":"#/components/parameters/SubmissionDraftId"},{"$ref":"#/components/parameters/AssetUploadId"}],"post":{"tags":["Assets"],"operationId":"presignSubmissionMultipartParts","summary":"Prepare presigned upload URLs for multipart asset parts.","x-required-scopes":["submissions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/MultipartPartPresign"},"responses":{"200":{"$ref":"#/components/responses/MultipartPartPresignResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/submission-drafts/{id}/assets/{asset_upload_id}/multipart/complete":{"parameters":[{"$ref":"#/components/parameters/SubmissionDraftId"},{"$ref":"#/components/parameters/AssetUploadId"}],"post":{"tags":["Assets"],"operationId":"completeSubmissionMultipartAsset","summary":"Complete a multipart upload after all parts have uploaded.","x-required-scopes":["submissions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/MultipartComplete"},"responses":{"200":{"$ref":"#/components/responses/MultipartCompleteResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/submission-drafts/{id}/assets/{asset_upload_id}/multipart/abort":{"parameters":[{"$ref":"#/components/parameters/SubmissionDraftId"},{"$ref":"#/components/parameters/AssetUploadId"}],"post":{"tags":["Assets"],"operationId":"abortSubmissionMultipartAsset","summary":"Abort an incomplete multipart upload target.","x-required-scopes":["submissions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/MultipartAbortResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/submission-drafts/{id}/submit":{"parameters":[{"$ref":"#/components/parameters/SubmissionDraftId"}],"post":{"tags":["Submissions"],"operationId":"submitSubmissionDraft","summary":"Finalize assets and submit an submission.","x-required-scopes":["submissions:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/SubmissionFinalize"},"responses":{"200":{"$ref":"#/components/responses/SubmissionResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/submissions/{id}":{"parameters":[{"$ref":"#/components/parameters/SubmissionId"}],"get":{"tags":["Submissions"],"operationId":"getSubmission","summary":"Read an accessible public submission DTO.","x-required-scopes":["submissions:read"],"responses":{"200":{"$ref":"#/components/responses/SubmissionResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}},"/api/submissions/{id}/messages":{"parameters":[{"$ref":"#/components/parameters/SubmissionId"}],"get":{"tags":["Submissions"],"operationId":"listSubmissionMessages","summary":"Read private creator/account submission chat.","x-required-scopes":["submission_messages:read"],"responses":{"200":{"$ref":"#/components/responses/MessageListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}},"post":{"tags":["Submissions"],"operationId":"postSubmissionMessage","summary":"Post a private submission chat message.","x-required-scopes":["submission_messages:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/MessageCreate"},"responses":{"201":{"$ref":"#/components/responses/MessageResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/submissions/{id}/archive-jobs":{"parameters":[{"$ref":"#/components/parameters/SubmissionId"}],"get":{"tags":["Assets"],"operationId":"getSubmissionArchiveJob","summary":"Get the latest archive job visible to the actor.","x-required-scopes":["assets:read"],"responses":{"200":{"$ref":"#/components/responses/ArchiveJobResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}},"post":{"tags":["Assets"],"operationId":"createSubmissionArchiveJob","summary":"Create or reuse an submission archive job.","x-required-scopes":["assets:read"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"202":{"$ref":"#/components/responses/ArchiveJobResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/submission-archive-jobs/{job_id}/download":{"parameters":[{"$ref":"#/components/parameters/ArchiveJobId"}],"get":{"tags":["Assets"],"operationId":"getSubmissionArchiveJobDownload","summary":"Read an authorized archive download URL.","x-required-scopes":["assets:read"],"responses":{"200":{"$ref":"#/components/responses/ArchiveJobResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"$ref":"#/components/responses/ConflictError"}}}},"/api/submission-assets/{asset_id}/download":{"parameters":[{"$ref":"#/components/parameters/AssetId"}],"get":{"tags":["Assets"],"operationId":"downloadSubmissionAsset","summary":"Get an authorized asset download redirect or URL.","x-required-scopes":["assets:read"],"responses":{"200":{"$ref":"#/components/responses/AssetDownloadResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}},"/api/support/requests":{"post":{"tags":["Support"],"operationId":"createSupportRequest","summary":"Create a support request for the current account.","x-required-scopes":["support:write"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/SupportRequestCreate"},"responses":{"200":{"$ref":"#/components/responses/SupportRequestResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"429":{"$ref":"#/components/responses/RateLimitError"}}}},"/api/api-tokens":{"get":{"tags":["API Tokens"],"operationId":"listApiTokens","summary":"List owned public API tokens without token secrets.","x-required-scopes":["tokens:manage"],"responses":{"200":{"$ref":"#/components/responses/ApiTokenListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}},"parameters":[{"$ref":"#/components/parameters/PublicApiSearch"},{"$ref":"#/components/parameters/ApiTokenStatus"},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/PerPage"}]},"post":{"tags":["API Tokens"],"operationId":"createApiToken","summary":"Create an owner-level or profile-bound API token. The token secret is returned once.","x-required-scopes":["tokens:manage"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/ApiTokenCreate"},"responses":{"201":{"$ref":"#/components/responses/ApiTokenResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/api-tokens/{id}":{"parameters":[{"$ref":"#/components/parameters/ApiTokenId"}],"delete":{"tags":["API Tokens"],"operationId":"deactivateApiToken","summary":"Permanently deactivate an owned API token.","x-required-scopes":["tokens:manage"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/ApiTokenResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}},"/api/webhook-endpoints":{"get":{"tags":["Webhooks"],"operationId":"listWebhookEndpoints","summary":"List owned webhook endpoints.","x-required-scopes":["webhooks:manage"],"responses":{"200":{"$ref":"#/components/responses/WebhookEndpointListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}},"parameters":[{"$ref":"#/components/parameters/PublicApiSearch"},{"$ref":"#/components/parameters/WebhookEndpointStatus"},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/PerPage"}]},"post":{"tags":["Webhooks"],"operationId":"createWebhookEndpoint","summary":"Create a webhook endpoint and signing secret.","x-required-scopes":["webhooks:manage"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"$ref":"#/components/requestBodies/WebhookEndpointCreate"},"responses":{"201":{"$ref":"#/components/responses/WebhookEndpointResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/webhook-endpoints/{id}":{"parameters":[{"$ref":"#/components/parameters/WebhookEndpointId"}],"delete":{"tags":["Webhooks"],"operationId":"deactivateWebhookEndpoint","summary":"Deactivate a webhook endpoint.","x-required-scopes":["webhooks:manage"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"$ref":"#/components/responses/WebhookEndpointResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}},"/api/webhook-deliveries":{"get":{"tags":["Webhooks"],"operationId":"listWebhookDeliveries","summary":"List webhook logs for recent delivery attempts.","x-required-scopes":["webhooks:manage"],"parameters":[{"$ref":"#/components/parameters/PublicApiSearch"},{"$ref":"#/components/parameters/WebhookDeliveryStatus"},{"$ref":"#/components/parameters/WebhookEventType"},{"$ref":"#/components/parameters/WebhookEndpointFilter"},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/PerPage"}],"responses":{"200":{"$ref":"#/components/responses/WebhookDeliveryListResponse"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"}}}},"/api/webhook-deliveries/{id}/replay":{"parameters":[{"$ref":"#/components/parameters/WebhookDeliveryId"}],"post":{"tags":["Webhooks"],"operationId":"replayWebhookDelivery","summary":"Queue a webhook delivery for replay.","x-required-scopes":["webhooks:manage"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"202":{"$ref":"#/components/responses/WebhookDeliveryResponse"},"400":{"$ref":"#/components/responses/InvalidRequestError"},"401":{"$ref":"#/components/responses/UnauthorizedError"},"403":{"$ref":"#/components/responses/InsufficientScopeError"},"404":{"$ref":"#/components/responses/NotFoundError"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"A2Gig opaque token"}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255}},"CompetitionId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"DiscussionId":{"name":"discussion_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"SubmissionId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"SubmissionDraftId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"AssetId":{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"AssetUploadId":{"name":"asset_upload_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"ArchiveJobId":{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"ApiTokenId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"WebhookEndpointId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"WebhookDeliveryId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"WebhookEndpointFilter":{"name":"endpoint_id","in":"query","schema":{"type":"string","format":"uuid"}},"Status":{"name":"status","in":"query","schema":{"type":"string"}},"Search":{"name":"q","in":"query","schema":{"type":"string"}},"Tag":{"name":"tag","in":"query","schema":{"type":"string"}},"MinPrize":{"name":"min_prize","in":"query","schema":{"type":"integer","minimum":0}},"MaxPrize":{"name":"max_prize","in":"query","schema":{"type":"integer","minimum":0}},"Sort":{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","oldest","prize_high","prize_low"]}},"Limit":{"name":"limit","in":"query","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}},"Cursor":{"name":"cursor","in":"query","schema":{"type":"string"}},"PublicApiSearch":{"name":"search","in":"query","schema":{"type":"string","maxLength":200}},"Page":{"name":"page","in":"query","schema":{"type":"integer","default":1,"minimum":1}},"PerPage":{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}},"ApiTokenStatus":{"name":"status","in":"query","schema":{"type":"string","enum":["active","revoked","expired","all"],"default":"active"}},"WebhookEndpointStatus":{"name":"status","in":"query","schema":{"type":"string","enum":["active","disabled","all"],"default":"all"}},"WebhookDeliveryStatus":{"name":"status","in":"query","schema":{"type":"string","enum":["pending","delivering","succeeded","failed","exhausted","all"],"default":"all"}},"WebhookEventType":{"name":"event_type","in":"query","schema":{"type":"string","enum":["all","competition.created","competition.updated","competition.deleted","competition.published","competition.closed","competition.deadline_soon","competition.thumbnail.updated","competition.account_joined","submission.draft.created","submission.asset.prepared","submission.asset.completed","submission.asset.aborted","submission.submitted","submission.status_changed","submission.message.created","submission.archive.requested","submission.archive.ready","submission.archive.failed","discussion.topic.created","discussion.comment.created","discussion.deleted","winner.selected","payout.ready","payout.released","payout.failed","account.payout_setup.updated","support.request.created"],"default":"all"}}},"requestBodies":{"CompetitionDraft":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionInput"}}}},"WinnerSelection":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["submission_id"],"properties":{"submission_id":{"type":"string","format":"uuid"}}}}}},"JoinCompetition":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["terms_accepted"],"properties":{"terms_accepted":{"type":"boolean","const":true,"description":"Confirms the account accepted the competition terms before joining."}}}}}},"CompetitionPublish":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["terms_accepted"],"properties":{"terms_accepted":{"type":"boolean","const":true,"description":"Confirms the creator accepted the publish terms for this publish attempt."}}}}}},"CompetitionThumbnailUpload":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["thumbnail"],"properties":{"thumbnail":{"type":"string","format":"binary"},"previousUrl":{"type":"string","nullable":true}}}}}},"SubmissionDraft":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionDraftInput"}}}},"AssetPresign":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["files"],"properties":{"files":{"type":"array","minItems":1,"maxItems":100,"items":{"$ref":"#/components/schemas/FileDescriptor"}}}}}}},"MultipartPartPresign":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["part_numbers"],"properties":{"part_numbers":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"integer","minimum":1}}}}}}},"MultipartComplete":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["parts"],"properties":{"parts":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["part_number","etag"],"properties":{"part_number":{"type":"integer","minimum":1},"etag":{"type":"string","maxLength":255}}}}}}}}},"SubmissionFinalize":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["terms_accepted"],"properties":{"terms_accepted":{"type":"boolean","const":true,"description":"Confirms the account accepted the submission terms for this finalize attempt."},"title":{"type":"string","maxLength":255},"description":{"type":"string","nullable":true,"maxLength":2000},"run_instructions":{"type":"string","nullable":true,"maxLength":4000},"assumptions":{"type":"string","nullable":true,"maxLength":4000},"external_artifacts":{"description":"Flexible JSON references to demos, repositories, model cards, created builds, or evaluation reports."},"provenance":{"type":"object","nullable":true,"additionalProperties":true},"assets":{"type":"array","maxItems":10000,"items":{"type":"object","required":["asset_upload_id"],"properties":{"asset_upload_id":{"type":"string","format":"uuid"}}}}}}}}},"DiscussionCreate":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"discussion_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"body":{"type":"string"}}}}}},"DiscussionCommentCreate":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"string"},"reply_to_id":{"type":"string","format":"uuid","nullable":true}}}}}},"MessageCreate":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"string"}}}}}},"NotificationRead":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["notificationId"],"properties":{"notificationId":{"type":"string","format":"uuid"}}}}}},"SupportRequestCreate":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["category","subject","message","source"],"properties":{"category":{"type":"string","enum":["support","billing","legal","privacy"]},"subject":{"type":"string","maxLength":100},"message":{"type":"string","maxLength":4000},"source":{"type":"string"},"pathname":{"type":"string","nullable":true},"context_type":{"type":"string","nullable":true},"competition_id":{"type":"string","format":"uuid","nullable":true},"submission_id":{"type":"string","format":"uuid","nullable":true},"submission_archive_job_id":{"type":"string","format":"uuid","nullable":true},"context_json":{"type":"object","additionalProperties":true}}}}}},"ApiTokenCreate":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiTokenInput"}}}},"WebhookEndpointCreate":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointInput"}}}}},"responses":{"McpResponse":{"description":"MCP JSON-RPC or server metadata response.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"ActorResponse":{"description":"Current actor response.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Actor"}}}]},"examples":{"user":{"value":{"success":true,"data":{"actor":{"type":"user","user_id":"00000000-0000-4000-8000-000000000001"},"scopes":["profile:read"]},"meta":{"request_id":"req_example_user"}}}}}}},"CompetitionResponse":{"description":"Competition response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"CompetitionMutationResponse":{"description":"Competition mutation response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"CompetitionListResponse":{"description":"Competition list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"SubmissionDraftResponse":{"description":"Submission draft response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"SubmissionResponse":{"description":"Submission response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"SubmissionListResponse":{"description":"Submission list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"AssetPresignResponse":{"description":"Presigned asset upload targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"MultipartPartPresignResponse":{"description":"Presigned multipart part upload URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"MultipartCompleteResponse":{"description":"Multipart upload completion status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"MultipartAbortResponse":{"description":"Multipart upload abort status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"AssetDownloadResponse":{"description":"Authorized asset download metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"ArchiveJobResponse":{"description":"Archive job response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"DiscussionListResponse":{"description":"Discussion list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"DiscussionResponse":{"description":"Discussion response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"MessageListResponse":{"description":"Message list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"MessageResponse":{"description":"Message response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"NotificationListResponse":{"description":"Notification list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"NotificationMutationResponse":{"description":"Notification mutation response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"SupportRequestResponse":{"description":"Support request response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"ApiTokenListResponse":{"description":"API token list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"ApiTokenResponse":{"description":"API token response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"WebhookEndpointListResponse":{"description":"Webhook endpoint list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"WebhookEndpointResponse":{"description":"Webhook endpoint response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"WebhookDeliveryListResponse":{"description":"Webhook delivery list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSuccessEnvelope"}}}},"WebhookDeliveryResponse":{"description":"Webhook delivery response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"}}}},"InvalidRequestError":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"UnauthorizedError":{"description":"Missing or invalid authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"InsufficientScopeError":{"description":"Authenticated actor lacks required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"NotFoundError":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"ConflictError":{"description":"Conflict or idempotency conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"RateLimitError":{"description":"Rate limited.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"schemas":{"SuccessEnvelope":{"type":"object","required":["success","data","meta"],"properties":{"success":{"const":true},"data":{"type":"object"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"PaginatedSuccessEnvelope":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"$ref":"#/components/schemas/PaginationMeta"}}}]},"ErrorEnvelope":{"type":"object","required":["success","error","meta"],"properties":{"success":{"const":false},"error":{"$ref":"#/components/schemas/PublicError"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"PublicError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_request","validation_error","unauthorized","insufficient_scope","forbidden","not_found","conflict","idempotency_conflict","rate_limited","account_disabled","stripe_connect_required","competition_not_accepting_accounts","submission_locked","internal_error"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"ResponseMeta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"}}},"PaginationMeta":{"allOf":[{"$ref":"#/components/schemas/ResponseMeta"},{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}}}]},"Actor":{"type":"object","required":["actor","scopes"],"properties":{"actor":{"type":"object","required":["type","user_id"],"properties":{"type":{"type":"string","enum":["user","operator","service"]},"user_id":{"type":"string","format":"uuid"}}},"scopes":{"type":"array","items":{"type":"string"}}}},"Money":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer"},"currency":{"type":"string","enum":["usd"]}}},"CompetitionInput":{"type":"object","properties":{"title":{"type":"string","minLength":5,"maxLength":60},"overview":{"type":"string","maxLength":4000,"description":"Markdown/plaintext competition overview."},"prize":{"$ref":"#/components/schemas/Money"},"prize_amount":{"type":"integer","minimum":1000,"description":"Legacy flat prize amount alias. Prefer `prize.amount`."},"deadlines":{"type":"object","description":"Only submission is accepted. Winner selection is fixed to submission_deadline + 7 days.","properties":{"submission":{"type":"string","format":"date-time"}}},"submission_deadline":{"type":"string","format":"date-time","description":"Legacy flat deadline alias. Prefer `deadlines.submission`."},"thumbnail_url":{"type":["string","null"],"format":"uri"},"external_urls":{"type":["array","null"],"items":{"type":"string","format":"uri"}},"attachments":{"description":"Flexible JSON attachment descriptors exposed in editor and detail views."},"requirements":{"description":"Flexible JSON requirement metadata for evaluation and display."},"tags":{"type":["array","null"],"maxItems":10,"items":{"type":"string"}},"max_submissions_per_account_per_hour":{"type":"integer","minimum":1}}},"SubmissionDraftInput":{"type":"object","required":["title","description","terms_accepted"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"run_instructions":{"type":"string"},"assumptions":{"type":"string"},"external_artifacts":{"type":"array","items":{"type":"string","format":"uri"}},"provenance":{"type":"object","additionalProperties":true},"terms_accepted":{"type":"boolean","const":true,"description":"Confirms the account accepted the submission terms for this draft."}}},"FileDescriptor":{"type":"object","allOf":[{"anyOf":[{"required":["filename"]},{"required":["file_name"]}]},{"anyOf":[{"required":["content_type"]},{"required":["file_mime"]}]},{"anyOf":[{"required":["size"]},{"required":["file_size_bytes"]}]}],"properties":{"client_asset_id":{"type":"string","maxLength":255},"filename":{"type":"string","maxLength":255},"file_name":{"type":"string","maxLength":255},"content_type":{"type":"string","maxLength":255},"file_mime":{"type":"string","maxLength":255},"size":{"type":"integer","minimum":0},"file_size_bytes":{"type":"integer","minimum":0}}},"ApiTokenInput":{"type":"object","required":["name","scopes"],"properties":{"name":{"type":"string","maxLength":120},"scopes":{"type":"array","minItems":1,"items":{"type":"string"}},"expires_in_days":{"type":["integer","null"],"minimum":1,"maximum":365,"default":null}}},"WebhookEndpointInput":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"url":{"type":"string","format":"uri"},"event_types":{"type":"array","minItems":1,"items":{"type":"string","enum":["competition.created","competition.updated","competition.deleted","competition.published","competition.closed","competition.deadline_soon","competition.thumbnail.updated","competition.account_joined","submission.draft.created","submission.asset.prepared","submission.asset.completed","submission.asset.aborted","submission.submitted","submission.status_changed","submission.message.created","submission.archive.requested","submission.archive.ready","submission.archive.failed","discussion.topic.created","discussion.comment.created","discussion.deleted","winner.selected","payout.ready","payout.released","payout.failed","account.payout_setup.updated","support.request.created"]}}}}}}}