Skip to main content
GET
/
api
/
v0
/
repositories
/
public
List repositories of public contests and bounties.
curl --request GET \
  --url https://api.example.com/api/v0/repositories/public
[
  {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "engagementId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "company": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>",
      "handle": "<string>",
      "logo": "<string>",
      "website": "<string>",
      "github": "<string>",
      "twitter": "<string>"
    },
    "gitRepoUrl": "<string>",
    "commitHash": "<string>",
    "currencyCode": "<string>",
    "showAllFindings": true,
    "publicMetadata": true,
    "kycRequired": true,
    "totalFindings": 123,
    "accessibleFindings": 123,
    "createdAt": "2023-11-07T05:31:56Z",
    "createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "readmePath": "<string>",
    "timeframe": {
      "start": "2023-11-07T05:31:56Z",
      "end": "2023-11-07T05:31:56Z"
    },
    "totalRewardPot": "<string>",
    "primaryPot": "<string>",
    "additionalPot": "<string>",
    "additionalPotSplit": [
      {
        "teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "amount": "<string>",
        "isTip": true
      }
    ],
    "stakeAmount": "<string>",
    "submissionFee": "<string>",
    "assetGroups": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "<string>",
        "description": "<string>",
        "outOfScope": true,
        "rewards": [
          {
            "minReward": "<string>",
            "maxReward": "<string>"
          }
        ],
        "assets": [
          {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "name": "<string>",
            "description": "<string>",
            "reference": "<string>"
          }
        ],
        "subGroups": [
          {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "name": "<string>",
            "assets": [
              {
                "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
                "name": "<string>",
                "description": "<string>",
                "reference": "<string>"
              }
            ],
            "description": "<string>"
          }
        ]
      }
    ],
    "pointCalculation": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>",
      "description": "<string>"
    },
    "instructions": "<string>",
    "allowedSeverities": [],
    "consideredSeverities": [],
    "allowedLabels": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "<string>",
        "isSystem": true,
        "reviewerRead": true,
        "reviewerUse": true,
        "description": "<string>",
        "archivedAt": "2023-11-07T05:31:56Z"
      }
    ],
    "requiredCtfAddress": "<string>",
    "capabilities": {
      "labelEdit": true,
      "labelEditReviewerVisibility": true,
      "labelStartEscalation": true
    },
    "safeHarbor": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "description": "<string>",
      "reward": "<string>",
      "returnAddresses": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "address": "<string>"
        }
      ],
      "assets": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "name": "<string>",
          "description": "<string>"
        }
      ],
      "cap": "<string>"
    }
  }
]

Documentation Index

Fetch the complete documentation index at: https://docs.cantina.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Query Parameters

kind
enum<string>[] | null

Kind of repository to return.

This returns an error if the repository kind is not public.

Defaults to returning public repositories, currently competitions and bounties.

Available options:
scoping,
collaborative_review,
private_contest,
public_contest,
private_bounty,
public_bounty
q
string | null

Search the company name, opportunity name and instructions.

Defaults to no filtering.

status
enum<string>[] | null

Filter based on repository statuses.

Defaults to no filtering.

Status of a repository.

Available options:
draft,
upcoming,
live,
judging,
escalations,
escalations_ended,
complete,
published
role
null | enum<string>

Filter based on the role the user has in the repository.

NOTE: not used in listing public repositories.

Defaults to no filtering. Role of a user in the context of a repository.

Available options:
client,
reviewer,
judge,
triager,
admin

Response

List of repositories for public contests and bounties, including private contests and private bounties with redacted details

id
string<uuid>
required
name
string
required
engagementId
string<uuid>
required
company
object
required

[Company] information in the context of a [Repository].

gitRepoUrl
string
required
commitHash
string
required
kind
enum<string>
required
Available options:
scoping,
collaborative_review,
private_contest,
public_contest,
private_bounty,
public_bounty
status
enum<string>
required

Status of a repository.

Available options:
draft,
upcoming,
live,
judging,
escalations,
escalations_ended,
complete,
published
currencyCode
string
required

Currency for total_reward_pot, primary_pot, additional_pot and all currencies in additional_pot_split.

Currently this defaults to USDC.

showAllFindings
boolean
required

Show all findings to researchers during judging and escalations

publicMetadata
boolean
required

Show a private repository's (competition or bounty) metadata.

This is only relevant for private competitions and bounties.

kycRequired
boolean
required

Require reviewers to KYC before joining.

totalFindings
integer<int32>
required

Total number of findings.

accessibleFindings
integer<int32>
required

Number of findings visible to the user.

aiStatus
enum<string>
required

The AI status of the repository.

Available options:
inactive,
in_progress,
active
createdAt
string<date-time>
required
createdBy
string<uuid>
required
readmePath
string | null

Path to the main readme file.

timeframe
object

Represent a range where the start is always set but the end is optional.

totalRewardPot
string | null
primaryPot
string | null

Primary pot value. Admin only.

additionalPot
string | null

Sum of all the additional rewards, excluding tips. Admin only.

additionalPotSplit
object[] | null

Split of the additional pot. Admin only.

stakeAmount
string | null

Stake amount for escalations.

NOTE: stakes are always in USDC.

If not set it means escalations don't require staking.

submissionFee
string | null

Amount required for submission a new finding. for escalations.

NOTE: fees are always in USDC.

If not set it means submissions are free.

assetGroups
object[]

Groups of assets.

pointCalculation
object

Point calculation set for the given repository Admin only.

instructions
string | null
allowedSeverities
enum<string>[] | null

Allowed finding severties for findings.

If this is undefined all severties are allowed. Otherwise only the severties in the list are allowed to be used when creating or updating findings.

Severity of a [Finding].

Available options:
critical,
high,
medium,
low,
informational,
gas_optimization
consideredSeverities
enum<string>[] | null

Finding severities that are considered to be eligible for a reward.

If this is null all severities are considered, otherwise on only severities in the list are considered for a reward.

Severity of a [Finding].

Available options:
critical,
high,
medium,
low,
informational,
gas_optimization
allowedLabels
object[]
companyUserAccess
null | enum<string>

User access level for the repository.

Available options:
open,
restricted
requiredCtfAddress
string | null

Require reviewers to have a CTF address set before joining.

capabilities
object

Provide a set of capabilities to simplify the frontend behaviour logic.

It is populated only by get_repo

safeHarbor
object

Specifies a Safe Harbor: a set of instructions, assets, return addresses, etc. that can be used by white hat security researchers to return assets received from exploitation of discovered vulnerabilities to ensure their findings.