Skip to content

Simulate custom format scoring for releases

POST
/simulate/score
curl --request POST \
--url https://example.com/api/v1/simulate/score \
--header 'Content-Type: application/json' \
--data '{ "databaseId": 1, "releases": [ { "id": "example", "title": "example", "type": "movie" } ], "profileNames": [ "example" ], "arrType": "radarr" }'

Parses release titles, evaluates custom format matches, and calculates per-profile scores for interactive score simulation.

Media typeapplication/json
object
databaseId
required

PCD database instance ID

integer
releases
required

Release titles to simulate (max 50)

Array<object>
<= 50 items
object
id
required

Client-generated correlation ID

string
title
required

Release title to parse and evaluate

string
type
required
string
Allowed values: movie series
profileNames
required

Quality profile names to score against (max 10)

Array<string>
<= 10 items
arrType
required

Arr type for score column resolution

string
Allowed values: radarr sonarr

Score simulation results

Media typeapplication/json
object
parserAvailable
required
boolean
results
required
Array<object>
object
id
required
string
title
required
string
parsed
required
One of:
object
source
required

Detected source (e.g., bluray, webdl, webrip)

string
resolution
required

Detected resolution (e.g., 1080p, 2160p)

string
modifier
required

Quality modifier (e.g., remux, none)

string
languages
required

Detected languages

Array<string>
releaseGroup

Detected release group

string
nullable
year
required

Detected year

integer
edition

Detected edition (e.g., Director’s Cut)

string
nullable
releaseType

Release type for series (single_episode, season_pack, etc.)

string
nullable
cfMatches
required
Array<object>
object
name
required
string
matches
required
boolean
conditions
required
Array<object>
object
conditionName
required
string
conditionType
required
string
matched
required
boolean
required
required
boolean
negate
required
boolean
passes
required
boolean
expected
required
string
actual
required
string
profileScores
required
Array<object>
object
profileName
required
string
totalScore
required
integer
minimumScore
required
integer
upgradeUntilScore
required
integer
contributions
required
Array<object>
object
cfName
required
string
score
required
integer
Examplegenerated
{
"parserAvailable": true,
"results": [
{
"id": "example",
"title": "example",
"parsed": {
"source": "example",
"resolution": "example",
"modifier": "example",
"languages": [
"example"
],
"releaseGroup": "example",
"year": 1,
"edition": "example",
"releaseType": "example"
},
"cfMatches": [
{
"name": "example",
"matches": true,
"conditions": [
{
"conditionName": "example",
"conditionType": "example",
"matched": true,
"required": true,
"negate": true,
"passes": true,
"expected": "example",
"actual": "example"
}
]
}
],
"profileScores": [
{
"profileName": "example",
"totalScore": 1,
"minimumScore": 1,
"upgradeUntilScore": 1,
"contributions": [
{
"cfName": "example",
"score": 1
}
]
}
]
}
]
}

Invalid request

Media typeapplication/json
object
error
required
string
Examplegenerated
{
"error": "example"
}

Database or profile not found

Media typeapplication/json
object
error
required
string
missing
required
Array<string>
Examplegenerated
{
"error": "example",
"missing": [
"example"
]
}

Internal server error

Media typeapplication/json
object
error
required
string
Examplegenerated
{
"error": "example"
}