Searching
The API provides full-text search queries for each major entity type. All search queries follow the same pattern: pass a criteria input with a search term, optional filters, paging, and sorting; get back a typed result set with pagination metadata.
Available Search Queries
| Query | Returns | Scoped to |
|---|---|---|
searchParties | [SuperParty] | All party roles — use filters.roles to narrow |
searchClients | [Client] | Parties with an active Client role |
searchBuyers | [Buyer] | Parties with an active Buyer role |
searchContacts | [Contact] | Parties with an active Contact role |
searchVenues | [Venue] | Venue parties |
searchEventSeries | [EventSeries] | Event series records |
Basic Text Search
All queries accept a term field. The search engine uses Lucene full-text matching with fuzzy matching enabled by default, so partial and misspelled names will still return results.
query SearchParties {
searchParties(criteria: {
term: "Jane Smith"
}) {
paging {
totalCount
limit
offset
}
values {
id
name
roles {
name
}
}
}
}Fuzzy Matching
By default, partialTermFuzzy: true is applied to all but the last term in a multi-word query. The last term uses prefix matching. To disable fuzzy matching, pass partialTermFuzzy: false. To enable strict prefix matching on all terms, pass partialTermStrict: true.
Role-Scoped Searches
When you only need parties of a specific role, use the scoped variants instead of searchParties. They return typed results and accept role-specific filter fields.
searchClients
query SearchClients {
searchClients(criteria: {
term: "Jane"
paging: { limit: 20, offset: 0 }
}) {
paging {
totalCount
limit
offset
}
values {
id
name
names {
name
type
}
}
}
}searchBuyers
query SearchBuyers {
searchBuyers(criteria: {
term: "Live Nation"
paging: { limit: 20, offset: 0 }
}) {
paging {
totalCount
}
values {
id
name
}
}
}searchContacts
query SearchContacts {
searchContacts(criteria: {
term: "Gonzalez"
}) {
paging {
totalCount
}
values {
id
name
}
}
}Searching by Role with searchParties
If you need results across multiple roles at once, use searchParties with a roles filter:
query SearchClientsAndBuyers {
searchParties(criteria: {
term: "Smith"
filters: {
roles: [CLIENT, BUYER]
}
}) {
paging {
totalCount
}
values {
id
name
roles {
name
}
}
}
}Searching Venues
searchVenues supports two mutually exclusive search modes: text search via term, or address search via streetAddress.
Search by name
query SearchVenuesByName {
searchVenues(criteria: {
term: "Madison Square"
paging: { limit: 10, offset: 0 }
}) {
paging {
totalCount
}
values {
id
name
}
}
}Search by street address
query SearchVenuesByAddress {
searchVenues(criteria: {
streetAddress: "4 Pennsylvania Plaza"
paging: { limit: 10, offset: 0 }
}) {
paging {
totalCount
}
values {
id
name
}
}
}term and streetAddress are mutually exclusive
Passing both term and streetAddress in the same query will return an error. Use one or the other.
To exclude subvenues (e.g. individual rooms within an arena) from results, pass filters: { excludeSubvenues: true }.
Searching Event Series
query SearchEventSeries {
searchEventSeries(criteria: {
term: "Coachella"
paging: { limit: 10, offset: 0 }
}) {
paging {
totalCount
}
values {
id
name
}
}
}Pagination
All search queries accept an OffsetBasedPagingInput in criteria.paging:
| Field | Type | Notes |
|---|---|---|
limit | Int | Number of results to return |
offset | Int | Number of results to skip |
The response paging object includes totalCount, which reflects the total number of matching records regardless of the current page. Use this to calculate whether more pages are available.
query SearchClientsPaged {
searchClients(criteria: {
term: "Johnson"
paging: { limit: 25, offset: 50 }
}) {
paging {
totalCount
limit
offset
}
values {
id
name
}
}
}Sorting
Pass a sorting input in criteria to control result order.
Sort options for party searches (searchParties, searchClients, searchBuyers, searchContacts)
| Value | Description |
|---|---|
NAME | Alphabetical by display name |
CREATED_DATE | Most recently created first |
RELEVANCE | Best text match first (default when a term is provided) |
Sort options for searchVenues and searchEventSeries
| Value | Description |
|---|---|
DISPLAY_NAME | Alphabetical by display name |
CREATED_DATE | Most recently created first |
RELEVANCE | Best text match first |
query SearchClientsSorted {
searchClients(criteria: {
term: "Williams"
sorting: { sort: NAME, sortOrder: ASC }
}) {
sorting {
sort
sortOrder
}
values {
id
name
}
}
}Filtering
searchParties filters
| Filter | Type | Notes |
|---|---|---|
roles | [RoleName!] | Limit to specific roles (e.g. CLIENT, BUYER, TALENT, CONTACT) |
repAreaIds | [UUID!] | Parties with representations in these rep areas |
representationStatus | [RepresentationStatus!] | Filter by rep lifecycle status |
agencyIds | [UUID!] | Parties affiliated with these agencies |
vocationIds | [UUID!] | Parties with these vocations |
skillIds | [UUID!] | Parties with these skills |
languageIds | [UUID!] | Parties who speak these languages |
nationalityIds | [UUID!] | Parties with these nationalities |
ethnicityIds | [UUID!] | Parties with these ethnicities |
genders | [PersonalInfoGender!] | Filter by gender |
playableAgeIds | [UUID!] | Parties with these playable ages |
workPaperIds | [UUID!] | Parties with these work authorizations |
interestIds | [UUID!] | Parties with these interests |
basedInLocations | [PartySearchLocationFilterInput!] | Parties based in a country/region/locality |
hasWorkedInLocations | [PartySearchLocationFilterInput!] | Parties with work history in a location |
publishStatus | [PublishStatusState!] | Defaults to [PUBLISHED] |
searchClients filters
Includes all of the above except roles and representationStatus. Also adds:
| Filter | Type | Notes |
|---|---|---|
agentIds | [UUID!] | Clients assigned to these agents |
budgetRangeIds | [UUID!] | Clients with these budget ranges |
searchVenues filters
| Filter | Type | Notes |
|---|---|---|
excludeSubvenues | Boolean | Omit subvenues from results (default: false) |
publishStatus | [PublishStatusState!] | Defaults to [PUBLISHED] |
constrainToActiveRole
searchParties accepts constrainToActiveRole: Boolean (default true). When true, only parties with a currently active role relationship are returned. Set to false to include parties whose roles have lapsed.