Search Sync Catalog
sync_searchCALL THIS for keyword/filter-based sync queries when the user already knows what they want: "tense instrumental", "BPM 90-100", "no vocals". This is the precise-query path. Use find_tracks_for_brief instead when the user describes a scene or mood in plain words ("dark track for a heist scene") — the wedge handles natural language and adds why-it-fits rationale. Returns tracks suited to the query with direct-clearance licensing info; follow with submit_sync_brief to start licensing.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"q": "<q>"
},
"name": "sync_search"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Sync query, e.g. "club scene" or "dark aggressive". Truncated at 500 characters. | |
| mood | No | Mood filter, matched against moods + energy words, e.g. "aggressive". | |
| bpm_max | No | Maximum BPM (inclusive). | |
| bpm_min | No | Minimum BPM (inclusive). | |
| explicit | No | true = explicit only, false = non-explicit only. Omit for all. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| query | Yes | ||
| tokens | No | ||
| results | Yes | ||
| _session | No | Chain session: pass _session.session_token back in the next call to continue the chain. | |
| try_next | No | Suggested follow-up calls, each a pre-compiled {tool, arguments, purpose} payload. | |
| generated_at | No | ||
| license_block | No | Markdown licensing summary for the top hit: ISRC, rights holders, clearance terms, contact. | |
| filters_applied | No | ||
| descriptor_provenance | No |