Skip to content

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

QueryReturnsScoped 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

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.

graphql
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

graphql
query SearchClients {
  searchClients(criteria: {
    term: "Jane"
    paging: { limit: 20, offset: 0 }
  }) {
    paging {
      totalCount
      limit
      offset
    }
    values {
      id
      name
      names {
        name
        type
      }
    }
  }
}

searchBuyers

graphql
query SearchBuyers {
  searchBuyers(criteria: {
    term: "Live Nation"
    paging: { limit: 20, offset: 0 }
  }) {
    paging {
      totalCount
    }
    values {
      id
      name
    }
  }
}

searchContacts

graphql
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:

graphql
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

graphql
query SearchVenuesByName {
  searchVenues(criteria: {
    term: "Madison Square"
    paging: { limit: 10, offset: 0 }
  }) {
    paging {
      totalCount
    }
    values {
      id
      name
    }
  }
}

Search by street address

graphql
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

graphql
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:

FieldTypeNotes
limitIntNumber of results to return
offsetIntNumber 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.

graphql
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)

ValueDescription
NAMEAlphabetical by display name
CREATED_DATEMost recently created first
RELEVANCEBest text match first (default when a term is provided)

Sort options for searchVenues and searchEventSeries

ValueDescription
DISPLAY_NAMEAlphabetical by display name
CREATED_DATEMost recently created first
RELEVANCEBest text match first
graphql
query SearchClientsSorted {
  searchClients(criteria: {
    term: "Williams"
    sorting: { sort: NAME, sortOrder: ASC }
  }) {
    sorting {
      sort
      sortOrder
    }
    values {
      id
      name
    }
  }
}

Filtering

searchParties filters

FilterTypeNotes
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:

FilterTypeNotes
agentIds[UUID!]Clients assigned to these agents
budgetRangeIds[UUID!]Clients with these budget ranges

searchVenues filters

FilterTypeNotes
excludeSubvenuesBooleanOmit 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.

Confidential. For internal use only.