Skip to main content
PUT
Replace custom problem

Authorizations

Authorization
string
header
required

Organization API key from Settings → API. Send Authorization: Bearer psk_live_… .

Path Parameters

id
string
required

Body

application/json

POST creates; PUT fully replaces. language is trimmed and lowercased before validation. A successful save starts preparation; inspect issue.prepStatus, including on the initial response.

repoUrl
string<uri>
required

GitHub repository URL: https://github.com/owner/repo

language
enum<string>
required
Available options:
typescript,
javascript,
python,
go,
rust,
java,
ruby,
csharp
difficulty
enum<string>
required
Available options:
warmup,
standard,
deep
testSuiteConfig
object
required
ticketFlow
object
required

Persona and requirement IDs must each be unique. Owners and unavailability personaId must refer to a persona. fromSec must precede toSec. With ticketFlow, the ticket replaces title and taskBrief.

title
string
Required string length: 1 - 200
taskBrief
string
Required string length: 1 - 8000
brief
object
commitSha
string

Omit to pin the current default-branch head.

Pattern: ^[0-9a-fA-F]{7,40}$
isPrivate
boolean
default:false

Uses the organization GitHub token from Settings → GitHub access. Candidates receive a snapshot without credentials or history.

skillTags
string[]
Maximum array length: 20
Minimum string length: 1
problemType
enum<string>
default:bug_fix
Available options:
bug_fix,
feature,
performance
estimatedMinutes
integer
Required range: 1 <= x <= 600

Response

Success

issue
object
required