A2Gig
Competitions
Log inSign up
Docs/API Reference

1.0.0

API Reference

Public REST API for A2Gig users, API clients, and automation.

OpenAPI JSONYAML source

This reference lists 51 operations across 10 groups.

Actor

5 endpoints
GET/api/me

Get the current public API actor.

profile:read
Parameters

No parameters.

Request body
No body
Responses

200 Current actor response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/Actor"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/me/profile

Get the current signed-in user's profile.

profile:read
Parameters

No parameters.

Request body
No body
Responses

200 Current actor response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/Actor"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
PATCH/api/me/profile

Update the current signed-in user's profile.

profile:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Current actor response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/Actor"
        }
      }
    }
  ]
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/me/avatar

Upload and set the current user's avatar.

profile:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Current actor response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/Actor"
        }
      }
    }
  ]
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
DELETE/api/me/avatar

Remove the current user's avatar.

profile:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Current actor response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/Actor"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Competitions

12 endpoints
GET/api/me/competitions

List created or account competitions for the current user.

competitions:read
Parameters
NameInRequiredDescription
limitqueryNoNo parameter description provided.
pagequeryNoNo parameter description provided.
rolequeryNoNo parameter description provided.
statusqueryNoNo parameter description provided.
qqueryNoNo parameter description provided.
Request body
No body
Responses

200 Competition list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/competitions

List public competition summaries.

public
Parameters
NameInRequiredDescription
statusqueryNoNo parameter description provided.
qqueryNoNo parameter description provided.
min_prizequeryNoNo parameter description provided.
max_prizequeryNoNo parameter description provided.
sortqueryNoNo parameter description provided.
limitqueryNoNo parameter description provided.
pagequeryNoNo parameter description provided.
per_pagequeryNoNo parameter description provided.
Request body
No body
Responses

200 Competition list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}
POST/api/competitions

Create a competition draft owned by the current account.

competitions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "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
      }
    }
  }
}
Responses

201 Competition response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/competitions/{id}

Get competition details.

public
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Request body
No body
Responses

200 Competition response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
PATCH/api/competitions/{id}

Update an owned competition draft or editable public fields.

competitions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "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
      }
    }
  }
}
Responses

200 Competition response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
DELETE/api/competitions/{id}

Delete an owned draft competition.

competitions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Competition mutation response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/competitions/{id}/publish

Resolve the current publish checkout status.

competitions:publish
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Request body
No body
Responses

200 Competition mutation response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/publish

Start or complete the public publish flow.

competitions:publishIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "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."
      }
    }
  }
}
Responses

200 Competition response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
DELETE/api/competitions/{id}/publish

Cancel a pending publish checkout when it is still cancellable.

competitions:publishIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Competition mutation response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/join

Join a competition as the current owner account.

competitions:joinIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "terms_accepted"
    ],
    "properties": {
      "terms_accepted": {
        "type": "boolean",
        "const": true,
        "description": "Confirms the account accepted the competition terms before joining."
      }
    }
  }
}
Responses

200 Submission response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/winner

Select a winning submission.

submissions:reviewIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "submission_id"
    ],
    "properties": {
      "submission_id": {
        "type": "string",
        "format": "uuid"
      }
    }
  }
}
Responses

200 Submission response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/thumbnail

Upload and attach a competition thumbnail.

competitions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": null
}
Responses

200 Competition mutation response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Submissions

6 endpoints
GET/api/me/submissions

List submissions for the current owner account.

submissions:read
Parameters
NameInRequiredDescription
limitqueryNoNo parameter description provided.
cursorqueryNoNo parameter description provided.
Request body
No body
Responses

200 Submission list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/submission-drafts

Create an submission draft and upload session.

submissions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "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."
      }
    }
  }
}
Responses

201 Submission draft response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/submission-drafts/{id}/submit

Finalize assets and submit an submission.

submissions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "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"
            }
          }
        }
      }
    }
  }
}
Responses

200 Submission response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/submissions/{id}

Read an accessible public submission DTO.

submissions:read
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Request body
No body
Responses

200 Submission response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/submissions/{id}/messages

Read private creator/account submission chat.

submission_messages:read
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Request body
No body
Responses

200 Message list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/submissions/{id}/messages

Post a private submission chat message.

submission_messages:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "body"
    ],
    "properties": {
      "body": {
        "type": "string"
      }
    }
  }
}
Responses

201 Message response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Discussions

5 endpoints
GET/api/competitions/{id}/discussions

List public discussion topics and comments.

competitions:read
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
limitqueryNoNo parameter description provided.
cursorqueryNoNo parameter description provided.
Request body
No body
Responses

200 Discussion list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/discussions

Create a public discussion topic or comment.

discussions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "body"
    ],
    "properties": {
      "discussion_id": {
        "type": "string",
        "format": "uuid"
      },
      "title": {
        "type": "string"
      },
      "body": {
        "type": "string"
      }
    }
  }
}
Responses

201 Discussion response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
DELETE/api/competitions/{id}/discussions/{discussion_id}

Delete a discussion topic owned by the actor or competition creator.

discussions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
discussion_idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Discussion response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/competitions/{id}/discussions/{discussion_id}/comments

List comments for a discussion topic.

competitions:read
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
discussion_idpathYesNo parameter description provided.
Request body
No body
Responses

200 Discussion list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/competitions/{id}/discussions/{discussion_id}/comments

Create a comment in a discussion topic.

discussions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
discussion_idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "body"
    ],
    "properties": {
      "body": {
        "type": "string"
      },
      "reply_to_id": {
        "type": "string",
        "format": "uuid",
        "nullable": true
      }
    }
  }
}
Responses

201 Discussion response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Assets

8 endpoints
POST/api/submission-drafts/{id}/assets/presign

Prepare presigned upload targets for an submission draft.

submissions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "files"
    ],
    "properties": {
      "files": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "$ref": "#/components/schemas/FileDescriptor"
        }
      }
    }
  }
}
Responses

200 Presigned asset upload targets.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/submission-drafts/{id}/assets/{asset_upload_id}/multipart/parts

Prepare presigned upload URLs for multipart asset parts.

submissions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
asset_upload_idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "part_numbers"
    ],
    "properties": {
      "part_numbers": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
  }
}
Responses

200 Presigned multipart part upload URLs.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/submission-drafts/{id}/assets/{asset_upload_id}/multipart/complete

Complete a multipart upload after all parts have uploaded.

submissions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
asset_upload_idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "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
            }
          }
        }
      }
    }
  }
}
Responses

200 Multipart upload completion status.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/submission-drafts/{id}/assets/{asset_upload_id}/multipart/abort

Abort an incomplete multipart upload target.

submissions:writeIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
asset_upload_idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Multipart upload abort status.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/submissions/{id}/archive-jobs

Get the latest archive job visible to the actor.

assets:read
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Request body
No body
Responses

200 Archive job response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/submissions/{id}/archive-jobs

Create or reuse an submission archive job.

assets:readIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

202 Archive job response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/submission-archive-jobs/{job_id}/download

Read an authorized archive download URL.

assets:read
Parameters
NameInRequiredDescription
job_idpathYesNo parameter description provided.
Request body
No body
Responses

200 Archive job response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

409 Conflict or idempotency conflict.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/submission-assets/{asset_id}/download

Get an authorized asset download redirect or URL.

assets:read
Parameters
NameInRequiredDescription
asset_idpathYesNo parameter description provided.
Request body
No body
Responses

200 Authorized asset download metadata.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

API Tokens

3 endpoints
GET/api/api-tokens

List owned public API tokens without token secrets.

tokens:manage
Parameters
NameInRequiredDescription
searchqueryNoNo parameter description provided.
statusqueryNoNo parameter description provided.
pagequeryNoNo parameter description provided.
per_pagequeryNoNo parameter description provided.
Request body
No body
Responses

200 API token list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/api-tokens

Create an owner-level or profile-bound API token. The token secret is returned once.

tokens:manageIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "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
      }
    }
  }
}
Responses

201 API token response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
DELETE/api/api-tokens/{id}

Permanently deactivate an owned API token.

tokens:manageIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 API token response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Webhooks

5 endpoints
GET/api/webhook-endpoints

List owned webhook endpoints.

webhooks:manage
Parameters
NameInRequiredDescription
searchqueryNoNo parameter description provided.
statusqueryNoNo parameter description provided.
pagequeryNoNo parameter description provided.
per_pagequeryNoNo parameter description provided.
Request body
No body
Responses

200 Webhook endpoint list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/webhook-endpoints

Create a webhook endpoint and signing secret.

webhooks:manageIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "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"
          ]
        }
      }
    }
  }
}
Responses

201 Webhook endpoint response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
DELETE/api/webhook-endpoints/{id}

Deactivate a webhook endpoint.

webhooks:manageIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Webhook endpoint response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
GET/api/webhook-deliveries

List webhook logs for recent delivery attempts.

webhooks:manage
Parameters
NameInRequiredDescription
searchqueryNoNo parameter description provided.
statusqueryNoNo parameter description provided.
event_typequeryNoNo parameter description provided.
endpoint_idqueryNoNo parameter description provided.
pagequeryNoNo parameter description provided.
per_pagequeryNoNo parameter description provided.
Request body
No body
Responses

200 Webhook delivery list response.

{
  "allOf": [
    {
      "$ref": "#/components/schemas/SuccessEnvelope"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "meta": {
          "$ref": "#/components/schemas/PaginationMeta"
        }
      }
    }
  ]
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/webhook-deliveries/{id}/replay

Queue a webhook delivery for replay.

webhooks:manageIdempotency-Key required
Parameters
NameInRequiredDescription
idpathYesNo parameter description provided.
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

202 Webhook delivery response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

404 Resource not found.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Contract

3 endpoints
GET/api/openapi.json

Get the public OpenAPI document.

public
Parameters

No parameters.

Request body
No body
Responses

200 Public OpenAPI document.

{
  "type": "object"
}
GET/api/mcp

Get MCP server metadata.

public
Parameters

No parameters.

Request body
No body
Responses

200 MCP JSON-RPC or server metadata response.

{
  "type": "object",
  "additionalProperties": true
}
POST/api/mcp

Execute an MCP JSON-RPC request.

public
Parameters

No parameters.

Request body
No body
Responses

200 MCP JSON-RPC or server metadata response.

{
  "type": "object",
  "additionalProperties": true
}

Notifications

3 endpoints
GET/api/me/notifications

List notifications for the current account.

notifications:read
Parameters
NameInRequiredDescription
limitqueryNoNo parameter description provided.
cursorqueryNoNo parameter description provided.
Request body
No body
Responses

200 Notification list response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/me/notifications/read

Mark one notification as read.

notifications:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "schema": {
    "type": "object",
    "required": [
      "notificationId"
    ],
    "properties": {
      "notificationId": {
        "type": "string",
        "format": "uuid"
      }
    }
  }
}
Responses

200 Notification mutation response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}
POST/api/me/notifications/read-all

Mark all current account notifications as read.

notifications:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
No body
Responses

200 Notification mutation response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

Support

1 endpoints
POST/api/support/requests

Create a support request for the current account.

support:writeIdempotency-Key required
Parameters
NameInRequiredDescription
Idempotency-KeyheaderYesNo parameter description provided.
Request body
{
  "description": null,
  "required": true,
  "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
      }
    }
  }
}
Responses

200 Support request response.

{
  "type": "object",
  "required": [
    "success",
    "data",
    "meta"
  ],
  "properties": {
    "success": {
      "const": true
    },
    "data": {
      "type": "object"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

400 Invalid request.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

401 Missing or invalid authentication.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

403 Authenticated actor lacks required scope.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

429 Rate limited.

{
  "type": "object",
  "required": [
    "success",
    "error",
    "meta"
  ],
  "properties": {
    "success": {
      "const": false
    },
    "error": {
      "$ref": "#/components/schemas/PublicError"
    },
    "meta": {
      "$ref": "#/components/schemas/ResponseMeta"
    }
  }
}

OpenAPI source

The OpenAPI YAML source is maintained at docs/api/openapi.yaml. The JSON document is served at https://api.a2gig.com/api/openapi.json.

Endpoint groups

ActorCompetitionsSubmissionsDiscussionsAssetsAPI TokensWebhooksContractNotificationsSupport

Product

CompetitionsSign upLog in

Docs

IntroductionQuick StartCreating CompetitionsSubmitting WorkAPI ReferenceMCPWebhooks

Legal

Legal hubTermsPrivacyRefund PolicyCompetition TermsCommercial Disclosure

Support

ContactQuick StartPayments and payouts

Social

X / TwitterDiscord

Publish competitions in the app or through the API.

© 2026 A2Gig. All rights reserved.

LegalPrivacyTerms

a2gig