Skip to content

Enqueue a manual TRaSH source sync

POST
/trash-guide/sources/{id}/sync
curl --request POST \
--url https://example.com/api/v1/trash-guide/sources/1/sync

Enqueues a manual sync for the TRaSH source and returns the per-run correlation token plus a source-labeled status view, so the initiating surface can link to exactly one current-or-terminal run. An already-running source dedupes onto the in-flight run (409) instead of acking a new one.

id
required
integer

TRaSH source ID

Sync queued (or coalesced onto a pending run)

Media typeapplication/json

Manual-sync enqueue acknowledgement, linking to exactly one current-or-terminal run.

object
success
required
boolean
queued
required
boolean
runToken
required
string
statusUrl
required
string
view
required

Single wire view of a source’s current queue slot + latest terminal run, reused by the POST response and the GET status resolver.

object
sourceId
required
integer
sourceName
required
One of:
string
arrType
required
One of:
string
Allowed values: radarr sonarr
queueId
required
One of:
integer
current
required
One of:
object
status
required
string
runAt
required
string
startedAt
required
One of:
string
attempts
required
integer
runToken
required
One of:
string
latestRun
required
One of:
object
id
required
integer
status
required
string
Allowed values: success failure skipped cancelled
startedAt
required
string
finishedAt
required
string
durationMs
required
integer
evidence
required
One of:

Versioned, structured terminal evidence for one TRaSH sync run, serialized into job_run_history.output. Survives a source hard-delete via its embedded identity snapshot.

object
schemaVersion
required
integer
Allowed values: 1
runToken
required
One of:
string
source
required
object
id
required
integer
name
required
One of:
string
arrType
required
One of:
string
Allowed values: radarr sonarr
trigger
required
string
Allowed values: manual scheduled
requestedAt
required
One of:
string
status
required
string
Allowed values: success failure skipped cancelled
counts
required
One of:

Fetched/applied counts for a TRaSH sync run.

object
commitsBehind
required
integer
parsedFiles
required
integer
failedFiles
required
integer
activeOperations
required
integer
removedEntities
required
integer
renamedEntities
required
integer
failure
required
One of:

Typed, closed, SAFE failure evidence. message/recoveryAction are pre-authored copy that never embeds raw exception text, git/parser diagnostics, credentials, or hostnames.

object
code
required

Closed, safe vocabulary of TRaSH sync failure reasons. Assigned by outcome/error type only — never by message parsing — so no raw diagnostic can leak.

string
Allowed values: source_missing source_disabled network parser_failed sync_failed internal
message
required
string
recoveryAction
required
string
retry
required
object
rescheduleAt
required
One of:
string
retryable
required
boolean
Example
{
"success": true,
"queued": true,
"view": {
"arrType": "radarr",
"latestRun": {
"status": "success",
"evidence": {
"schemaVersion": 1,
"source": {
"arrType": "radarr"
},
"trigger": "manual",
"status": "success",
"failure": {
"code": "source_missing"
}
}
}
}
}

Invalid source ID

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

TRaSH source not found

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

A sync is already running for this source — links to the existing run

Media typeapplication/json

Already-running dedupe response — links to the existing in-flight run rather than acking a new one.

object
error
required
string
deduped
required
boolean
runToken
required
string
statusUrl
required
string
view
required

Single wire view of a source’s current queue slot + latest terminal run, reused by the POST response and the GET status resolver.

object
sourceId
required
integer
sourceName
required
One of:
string
arrType
required
One of:
string
Allowed values: radarr sonarr
queueId
required
One of:
integer
current
required
One of:
object
status
required
string
runAt
required
string
startedAt
required
One of:
string
attempts
required
integer
runToken
required
One of:
string
latestRun
required
One of:
object
id
required
integer
status
required
string
Allowed values: success failure skipped cancelled
startedAt
required
string
finishedAt
required
string
durationMs
required
integer
evidence
required
One of:

Versioned, structured terminal evidence for one TRaSH sync run, serialized into job_run_history.output. Survives a source hard-delete via its embedded identity snapshot.

object
schemaVersion
required
integer
Allowed values: 1
runToken
required
One of:
string
source
required
object
id
required
integer
name
required
One of:
string
arrType
required
One of:
string
Allowed values: radarr sonarr
trigger
required
string
Allowed values: manual scheduled
requestedAt
required
One of:
string
status
required
string
Allowed values: success failure skipped cancelled
counts
required
One of:

Fetched/applied counts for a TRaSH sync run.

object
commitsBehind
required
integer
parsedFiles
required
integer
failedFiles
required
integer
activeOperations
required
integer
removedEntities
required
integer
renamedEntities
required
integer
failure
required
One of:

Typed, closed, SAFE failure evidence. message/recoveryAction are pre-authored copy that never embeds raw exception text, git/parser diagnostics, credentials, or hostnames.

object
code
required

Closed, safe vocabulary of TRaSH sync failure reasons. Assigned by outcome/error type only — never by message parsing — so no raw diagnostic can leak.

string
Allowed values: source_missing source_disabled network parser_failed sync_failed internal
message
required
string
recoveryAction
required
string
retry
required
object
rescheduleAt
required
One of:
string
retryable
required
boolean
Example
{
"deduped": true,
"view": {
"arrType": "radarr",
"latestRun": {
"status": "success",
"evidence": {
"schemaVersion": 1,
"source": {
"arrType": "radarr"
},
"trigger": "manual",
"status": "success",
"failure": {
"code": "source_missing"
}
}
}
}
}

Failed to enqueue the sync

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}