Queries
Queries are a type that defines what data you are able to request from the GraphQL API.
accounts
Type: [Account!]!
Get a list of accounts which the current authentication has access to.
Example
query Accounts { accounts { __typename # ...plus the fields you need } }
approval
Type: Approval
Get a specific approval flow by ID.
Requires the manage-approvals team permission on the owning company.
| Arguments |
|---|
idID! |
Example
query Approval { approval(id: "abc123") { __typename # ...plus the fields you need } }
approvalApprovable
Type: ApprovalApprovable
Get a specific approval request by ID.
| Arguments |
|---|
idID! |
Example
query ApprovalApprovable { approvalApprovable(id: "abc123") { __typename # ...plus the fields you need } }
approvalApprovables
Type: ApprovalApprovablePaginator!
List approval requests — the runtime instances created when a trigger fires.
Use filters to find requests that need action, belong to specific approvals, or relate to specific items (e.g. a particular hire).
| Arguments |
|---|
accounts[ID!] |
requiresActionBooleantrue, only return approval requests that still need action from any approver. |
requiresActionUsers[ID!] |
approvals[ID!] |
approvableID |
approvalRules[ID!] |
orderBy[ApprovalApprovablesOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query ApprovalApprovables { approvalApprovables(accounts: ["abc123"], requiresAction: true, requiresActionUsers: ["abc123"], approvals: ["abc123"], approvable: "abc123", approvalRules: ["abc123"], orderBy: [{ # ApprovalApprovablesOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
approvalRule
Type: ApprovalRule
Get a specific approval rule by ID.
| Arguments |
|---|
idID! |
Example
query ApprovalRule { approvalRule(id: "abc123") { __typename # ...plus the fields you need } }
approvalRules
Type: ApprovalRulePaginator!
List all approval rules accessible to the authenticated user.
| Arguments |
|---|
accounts[ID!] |
firstInt! |
pageInt |
Example
query ApprovalRules { approvalRules(accounts: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
approvalStates
Type: ApprovalStatePaginator!
List all approval actions (approvals, rejections, change requests) across approval requests.
Use this to build an audit trail of all approval activity for a company.
| Arguments |
|---|
accounts[ID!] |
status[ApprovalApprovableState!] |
users[ID!] |
firstInt! |
pageInt |
Example
query ApprovalStates { approvalStates(accounts: ["abc123"], status: [UNKNOWN], users: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
approvals
Type: ApprovalPaginator!
List all approval flows accessible to the authenticated user.
Requires the manage-approvals team permission.
| Arguments |
|---|
accounts[ID!] |
searchString |
firstInt! |
pageInt |
Example
query Approvals { approvals(accounts: ["abc123"], search: "example", first: 10, page: 10) { __typename # ...plus the fields you need } }
approver
Type: Approver
Get a specific approver assignment by ID.
| Arguments |
|---|
idID! |
Example
query Approver { approver(id: "abc123") { __typename # ...plus the fields you need } }
approvers
Type: ApproverPaginator!
List approver assignments, optionally filtered by approval rule.
| Arguments |
|---|
accounts[ID!] |
approvalRuleID |
firstInt! |
pageInt |
Example
query Approvers { approvers(accounts: ["abc123"], approvalRule: "abc123", first: 10, page: 10) { __typename # ...plus the fields you need } }
batch
Type: Batch
Get a specific batch.
| Arguments |
|---|
idID! |
Example
query Batch { batch(id: "abc123") { __typename # ...plus the fields you need } }
batches
Type: BatchPaginator!
Get a list of batches.
| Arguments |
|---|
accounts[ID!] |
types[BatchType!] |
containsItemsWithStatus[BatchItemStatus!] |
firstInt! |
pageInt |
Example
query Batches { batches(accounts: ["abc123"], types: [PARTNER_PAYMENT_REQUESTS], containsItemsWithStatus: [PROCESSING], first: 10, page: 10) { __typename # ...plus the fields you need } }
bid
Type: Bid
Get a specific bid which the user has access to.
| Arguments |
|---|
idID! |
Example
query Bid { bid(id: "abc123") { __typename # ...plus the fields you need } }
bids
Type: BidPaginator!
Get a list of all bids which the viewer has access to.
| Arguments |
|---|
statuses[BidStatus!] |
jobID |
accounts[ID!] |
companies[ID!] |
orderBy[BidOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query Bids { bids(statuses: [OPEN], job: "abc123", accounts: ["abc123"], companies: ["abc123"], orderBy: [{ # BidOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
classification
Type: Classification
Get a specific classification by ID.
| Arguments |
|---|
idID! |
Example
query Classification { classification(id: "abc123") { __typename # ...plus the fields you need } }
classifications
Type: ClassificationPaginator!
Get all classifications for a specific hire.
| Arguments |
|---|
hireID! |
firstInt! |
pageInt |
Example
query Classifications { classifications(hire: "abc123", first: 10, page: 10) { __typename # ...plus the fields you need } }
clientRelation
Type: ClientRelation
Experimental. Get one client relation of the viewer’s supplier accounts: a supplier company’s relation or a staffing agency’s client link, whichever kind the ID is.
| Arguments |
|---|
idID! |
Example
query ClientRelation { clientRelation(id: "abc123") { __typename # ...plus the fields you need } }
clientRelationCounterpartOwners
Type: OwnerPaginator!
Experimental. The other side’s people assigned to one client relation. On a supplier company’s relation: the people its staffing agencies assigned to their links at that client. On a staffing agency’s managed link: the people the managing company assigned to its own relation with that client. Empty for a direct agency link.
| Arguments |
|---|
accounts[ID!] |
clientID! |
searchString |
staffingAgencies[ID!] |
assignedAtDateRangeDateRangeInput |
orderBy[ClientRelationAgencyOwnerOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query ClientRelationCounterpartOwners { clientRelationCounterpartOwners(accounts: ["abc123"], client: "abc123", search: "example", staffingAgencies: ["abc123"], assignedAtDateRange: { # DateRangeInput fields }, orderBy: [{ # ClientRelationAgencyOwnerOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
clientRelationOwners
Type: OwnerPaginator!
The viewer’s own team members assigned to one client relation: a supplier company’s or a staffing agency’s.
| Arguments |
|---|
accounts[ID!] |
clientID! |
searchString |
assignedAtDateRangeDateRangeInput |
orderBy[ClientRelationOwnerOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query ClientRelationOwners { clientRelationOwners(accounts: ["abc123"], client: "abc123", search: "example", assignedAtDateRange: { # DateRangeInput fields }, orderBy: [{ # ClientRelationOwnerOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
clientRelationRegions
Type: [MarketWithRegions!]!
Experimental. The markets of the viewer’s clients, with all of their regions: the clients of its supplier companies and of its staffing agencies.
| Arguments |
|---|
accounts[ID!] |
Example
query ClientRelationRegions { clientRelationRegions(accounts: ["abc123"]) { __typename # ...plus the fields you need } }
clientRelationTeam
Type: CompanyTeamMemberPaginator!
The client company’s team behind one relation: its owner and the members who have accepted.
| Arguments |
|---|
accounts[ID!] |
clientID! |
searchString |
accountRoles[CompanyTeamRole!] |
hasPhoneBoolean |
orderBy[ClientRelationTeamOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query ClientRelationTeam { clientRelationTeam(accounts: ["abc123"], client: "abc123", search: "example", accountRoles: [OWNER], hasPhone: true, orderBy: [{ # ClientRelationTeamOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
clientSuppliers
Type: SupplierClientPaginator!
The suppliers contracted for one of the company’s clients.
| Arguments |
|---|
accounts[ID!] |
clientID! |
searchString |
supplierStatuses[RecruiterStatus!] |
linkedAtDateRangeDateRangeInput |
orderBy[SupplierClientOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query ClientSuppliers { clientSuppliers(accounts: ["abc123"], client: "abc123", search: "example", supplierStatuses: [ACTIVE], linkedAtDateRange: { # DateRangeInput fields }, orderBy: [{ # SupplierClientOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
companies
Type: CompanyPaginator!
Get a list of companies that the authenticated user has access to.
| Arguments |
|---|
externalIdentifiers[String!] |
firstInt! |
pageInt |
Example
query Companies { companies(externalIdentifiers: ["example"], first: 10, page: 10) { __typename # ...plus the fields you need } }
company
Type: Company
Get a specific company.
| Arguments |
|---|
idID! |
Example
query Company { company(id: "abc123") { __typename # ...plus the fields you need } }
companyClients
Type: CompanySupplierPaginator!
Get a list of clients the authenticated company accounts supply to.
The rows companySuppliers also returns, limited to those where the viewer’s company is the supplier.
| Arguments |
|---|
accounts[ID!] |
searchString |
clientRegionsMarketRegionInput |
createdAtDateRangeDateRangeInput |
paymentTermsFollowsClientBoolean |
hasLinkedStaffingAgenciesBoolean |
linkedStaffingAgencies[ID!] |
owners[ID!] |
orderBy[CompanyClientOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query CompanyClients { companyClients(accounts: ["abc123"], search: "example", clientRegions: { # MarketRegionInput fields }, createdAtDateRange: { # DateRangeInput fields }, paymentTermsFollowsClient: true, hasLinkedStaffingAgencies: true, linkedStaffingAgencies: ["abc123"], owners: ["abc123"], orderBy: [{ # CompanyClientOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
companyRecruiter
Type: CompanyRecruiter
Get a specific company recruiter.
| Arguments |
|---|
idID! |
Example
query CompanyRecruiter { companyRecruiter(id: "abc123") { __typename # ...plus the fields you need } }
companyRecruiterRegions
Type: [MarketWithRegions!]!
Get distinct regions used by the company’s associated recruiters, grouped by market. Scoped to the authenticated user’s companies.
Example
query CompanyRecruiterRegions { companyRecruiterRegions { __typename # ...plus the fields you need } }
companyRecruiters
Type: CompanyRecruiterPaginator!
Get a list of company recruiters.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
searchString |
statuses[RecruiterStatus!] |
tags[String!] |
markets[String!] |
recruiterRegionsMarketRegionInput |
orderBy[RecruiterOrderByClauseInput!] |
externalIdentifiers[String!] |
customFields[CustomFieldTypeValueInput!] |
verifiedRecruiterReviewVerifiedRecruiterReviewFilterInput |
endClients[ID!] |
firstInt! |
pageInt |
Example
query CompanyRecruiters { companyRecruiters(accounts: ["abc123"], search: "example", statuses: [ACTIVE], tags: ["example"], markets: ["example"], recruiterRegions: { # MarketRegionInput fields }, orderBy: [{ # RecruiterOrderByClauseInput fields }], externalIdentifiers: ["example"], customFields: [{ # CustomFieldTypeValueInput fields }], verifiedRecruiterReview: { # VerifiedRecruiterReviewFilterInput fields }, endClients: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
companySupplier
Type: CompanySupplier
Get a specific company supplier.
| Arguments |
|---|
idID! |
Example
query CompanySupplier { companySupplier(id: "abc123") { __typename # ...plus the fields you need } }
companySuppliers
Type: CompanySupplierPaginator!
Get a list of company suppliers for the authenticated company accounts.
| Arguments |
|---|
accounts[ID!] |
searchString |
firstInt! |
pageInt |
Example
query CompanySuppliers { companySuppliers(accounts: ["abc123"], search: "example", first: 10, page: 10) { __typename # ...plus the fields you need } }
compliance
Type: [Compliance!]!
Get compliance requirements for a specific hire.
Returns all compliance requirements that apply to the given hire, or only the specified compliances if the names argument is provided.
| Arguments |
|---|
idID! |
names[ComplianceName!] |
cachedBooleanapplicable / completed. Defaults to live computation. Pass true to read the persisted compliance status row (falling back to live when no row exists yet). Intended for verification dashboards during the persisted-status rollout; the default will remain live until the persisted rows are proven correct in production. |
Example
query Compliance { compliance(id: "abc123", names: [ADDRESS], cached: true) { __typename # ...plus the fields you need } }
contract
Type: Contract
Get a specific contract.
| Arguments |
|---|
idID! |
Example
query Contract { contract(id: "abc123") { __typename # ...plus the fields you need } }
contracts
Type: ContractPaginator!
Get a list of contracts.
| Arguments |
|---|
accounts[ID!] |
currencies[Currency!] |
statuses[ContractStatus!] |
locationPreferences[LocationPreference!] |
firstInt! |
pageInt |
Example
query Contracts { contracts(accounts: ["abc123"], currencies: [AED], statuses: [DRAFT], locationPreferences: [ONSITE_ONLY], first: 10, page: 10) { __typename # ...plus the fields you need } }
conversation
Type: Conversation
Get a specific conversation.
| Arguments |
|---|
idID! |
Example
query Conversation { conversation(id: "abc123") { __typename # ...plus the fields you need } }
conversations
Type: ConversationPaginator!
Get a list of conversations.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. If multiple accounts are used only conversations for those accounts will be shown. |
isOpenBoolean |
firstInt! |
pageInt |
Example
query Conversations { conversations(accounts: ["abc123"], isOpen: true, first: 10, page: 10) { __typename # ...plus the fields you need } }
countries
Type: [Country!]!
Get a list of all countries.
Example
query Countries { countries { __typename # ...plus the fields you need } }
customField
Type: CustomField
Get a specific custom field.
| Arguments |
|---|
idID! |
Example
query CustomField { customField(id: "abc123") { __typename # ...plus the fields you need } }
customFields
Type: CustomFieldPaginator!
Get a list of custom fields.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied, then all authenticated accounts will be used. |
approvalBoolean |
appliesTo[TypeSupportingCustomFieldValues!] |
includeArchivedBoolean |
firstInt! |
pageInt |
Example
query CustomFields { customFields(accounts: ["abc123"], approval: true, appliesTo: [JOB], includeArchived: true, first: 10, page: 10) { __typename # ...plus the fields you need } }
employment
Type: Employment
Get a specific employment.
| Arguments |
|---|
idID! |
Example
query Employment { employment(id: "abc123") { __typename # ...plus the fields you need } }
employments
Type: EmploymentPaginator!
Get a list of employments.
| Arguments |
|---|
accounts[ID!] |
status[EmploymentStatus!] |
employerRecordStatus[EmployerRecordStatus!] |
searchString |
orderBy[EmploymentsOrderByClauseInput!] |
startDateRangeDateRangeInput |
endDateRangeDateRangeInput |
contractType[ContractType!] |
locations[String!] |
companies[ID!] |
hiringManagers[ID!] |
rateTypes[RateType!] |
previouslyHiredBoolean |
firstInt! |
pageInt |
Example
query Employments { employments(accounts: ["abc123"], status: [DRAFT], employerRecordStatus: [INCOMPLETE], search: "example", orderBy: [{ # EmploymentsOrderByClauseInput fields }], startDateRange: { # DateRangeInput fields }, endDateRange: { # DateRangeInput fields }, contractType: [CONTRACT_TYPE_CONTRACTOR], locations: ["example"], companies: ["abc123"], hiringManagers: ["abc123"], rateTypes: [HOURLY], previouslyHired: true, first: 10, page: 10) { __typename # ...plus the fields you need } }
file
Type: File
Get a specific file.
| Arguments |
|---|
idID! |
Example
query File { file(id: "abc123") { __typename # ...plus the fields you need } }
files
Type: FilePaginator!
Get a list of files.
| Arguments |
|---|
accounts[ID!]If no accounts supplied then all authenticated accounts will be used. |
mimeTypes[String!] |
firstInt! |
pageInt |
Example
query Files { files(accounts: ["abc123"], mimeTypes: ["example"], first: 10, page: 10) { __typename # ...plus the fields you need } }
gate
Type: Gate
Get a specific gate for a hire.
Returns the gate containing compliance requirements grouped by a specific compliance name.
| Arguments |
|---|
idID! |
gateComplianceName! |
cachedBooleanapplicable / completed on the gate and its compliances. Defaults to live; pass true to read the persisted status rows with a live fallback. |
Example
query Gate { gate(id: "abc123", gate: ADDRESS, cached: true) { __typename # ...plus the fields you need } }
hire
Type: Hire
Get a specific hire.
All parties of the hire can use this field for seeing their hire.
| Arguments |
|---|
idID! |
Example
query Hire { hire(id: "abc123") { __typename # ...plus the fields you need } }
hireInvitation
Type: HireInvitation
The questions a hire’s company asks its worker, with only the hire details needed to answer them.
Available to the hire’s worker, or the staffing agency managing them. Unlike hire, this also works while the hire is a draft waiting on answers, and never exposes commercial terms.
| Arguments |
|---|
idID! |
Example
query HireInvitation { hireInvitation(id: "abc123") { __typename # ...plus the fields you need } }
hireInvitations
Type: [HireInvitation!]!
The draft hires waiting on answers from the viewer (the worker, or the staffing agency managing them).
Example
query HireInvitations { hireInvitations { __typename # ...plus the fields you need } }
hires
Type: HirePaginator!
Get a list of hires.
All parties of the hire can use this field for seeing their hires.
| Arguments |
|---|
accounts[ID!] |
searchString |
status[HireActiveStatus!] |
orderBy[HiresOrderByClauseInput!] |
recruiterOwnershipIsExpiredBoolean |
companies[ID!] |
endClients[ID!] |
workers[ID!] |
staffingAgencies[ID!]Includes hires supplied through a managed service provider, where the staffing agency is recorded on the provider’s copy of the hire rather than on this one. |
recruiters[ID!]Unlike staffingAgencies, this ignores hires supplied through a managed service provider, where the staffing agency is recorded only on the provider’s copy. Both return the same hires for work supplied directly. |
startDateRangeDateRangeInput |
endDateRangeDateRangeInput |
startsAfterDate |
endsAfterDate |
createdAtDateRangeDateRangeInput |
externalIdentifiers[String!] |
contractStatus[ContractStatus!] |
checklistStatus[ChecklistStatus!] |
contractType[ContractType!] |
engagementType[EngagementType!] |
engagementTypeSetup[EngagementTypeSetup!] |
usesClassification[ClassificationUsage!] |
activeStatus[HireActiveStatus!] |
includeDeletedBoolean Deprecated |
jobOwners[ID!] Deprecated |
owners[ID!] |
hasPaymentRequestsBoolean |
missingPaymentRequestDateRangeDateRangeInput |
hasRecruiterAttributionBoolean |
eligibleForPaymentRequestsBoolean |
jobs[ID!] |
supplierAccounts[ID!] |
firstInt! |
pageInt |
Example
query Hires { hires(accounts: ["abc123"], search: "example", status: [DRAFT], orderBy: [{ # HiresOrderByClauseInput fields }], recruiterOwnershipIsExpired: true, companies: ["abc123"], endClients: ["abc123"], workers: ["abc123"], staffingAgencies: ["abc123"], recruiters: ["abc123"], startDateRange: { # DateRangeInput fields }, endDateRange: { # DateRangeInput fields }, startsAfter: "...", endsAfter: "...", createdAtDateRange: { # DateRangeInput fields }, externalIdentifiers: ["example"], contractStatus: [DRAFT], checklistStatus: [COMPLETE], contractType: [CONTRACT_TYPE_CONTRACTOR], engagementType: [PAYROLL], engagementTypeSetup: [W2], usesClassification: [NOT_USING], activeStatus: [DRAFT], includeDeleted: true, jobOwners: ["abc123"], owners: ["abc123"], hasPaymentRequests: true, missingPaymentRequestDateRange: { # DateRangeInput fields }, hasRecruiterAttribution: true, eligibleForPaymentRequests: true, jobs: ["abc123"], supplierAccounts: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
incomingJobs
Type: JobPaginator!
Jobs shared with a linked account that do not yet have a derived version.
| Arguments |
|---|
searchString |
orderBy[JobsOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query IncomingJobs { incomingJobs(search: "example", orderBy: [{ # JobsOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
industries
Type: IndustryPaginator!
Get a list of industries.
| Arguments |
|---|
firstInt! |
pageInt |
Example
query Industries { industries(first: 10, page: 10) { __typename # ...plus the fields you need } }
industry
Type: Industry
Get a specific industry.
| Arguments |
|---|
idID! |
Example
query Industry { industry(id: "abc123") { __typename # ...plus the fields you need } }
inheritedCustomFields
Type: CustomFieldPaginator!
Get a list of inherited custom fields.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied, then all authenticated accounts will be used. |
approvalBoolean |
appliesTo[TypeSupportingCustomFieldValues!] |
includeArchivedBoolean |
firstInt! |
pageInt |
Example
query InheritedCustomFields { inheritedCustomFields(accounts: ["abc123"], approval: true, appliesTo: [JOB], includeArchived: true, first: 10, page: 10) { __typename # ...plus the fields you need } }
invoice
Type: Invoice
Get a specific invoice.
| Arguments |
|---|
idIDExactly one of id or number must be supplied. |
numberStringExactly one of id or number must be supplied. |
Example
query Invoice { invoice(id: "abc123", number: "example") { __typename # ...plus the fields you need } }
invoiceRow
Type: InvoiceRow
Get a specific invoice row.
| Arguments |
|---|
idID! |
Example
query InvoiceRow { invoiceRow(id: "abc123") { __typename # ...plus the fields you need } }
invoices
Type: InvoicePaginator!
Get a list of invoices.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
status[InvoiceStatus!] |
transactionTypes[InvoiceTransactionType!] |
searchString |
hasPurchaseOrderNumberBoolean |
currency[Currency!] |
externalIdentifiers[String!] |
invoiceDateRangeDateRangeInput |
updatedAtRangeDateTimeRangeInputUse this to fetch new invoices and credit notes on a schedule: pass the start of the current run as to and the start of the previous run as from, moved a few minutes earlier so consecutive runs overlap slightly. Times must include fractional seconds and an offset, e.g. 2026-10-14T05:00:00.000000Z for 07:00 in Amsterdam summer time. Using UTC (Z) is recommended.An invoice is only returned once it is booked and has a number and a PDF, which can happen some time after it was created, so filtering on the last change rather than the creation time catches invoices booked late. Later changes, such as a recorded payment, also update this time, so an invoice that was already fetched can be returned again; deduplicate on the invoice number. Results are paged by offset, so a change during a run can shift later pages; if paginatorInfo.total drops partway through a run, start again from the first page. |
orderBy[QueryInvoicesOrderByOrderByClause!] |
firstInt! |
pageInt |
Example
query Invoices { invoices(accounts: ["abc123"], status: [PAID], transactionTypes: [INVOICE], search: "example", hasPurchaseOrderNumber: true, currency: [AED], externalIdentifiers: ["example"], invoiceDateRange: { # DateRangeInput fields }, updatedAtRange: { # DateTimeRangeInput fields }, orderBy: [{ # QueryInvoicesOrderByOrderByClause fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
job
Type: Job
Get a specific job.
| Arguments |
|---|
idID! |
Example
query Job { job(id: "abc123") { __typename # ...plus the fields you need } }
jobCandidate
Type: JobCandidate
Get a specific job candidate.
| Arguments |
|---|
idID! |
Example
query JobCandidate { jobCandidate(id: "abc123") { __typename # ...plus the fields you need } }
jobCandidates
Type: JobCandidatePaginator!
Get a list of job candidates.
| Arguments |
|---|
jobs[ID!] |
statuses[JobCandidateStatus!] |
steps[JobCandidateHiringStep!] |
preferredBoolean |
orderBy[JobCandidateOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query JobCandidates { jobCandidates(jobs: ["abc123"], statuses: [ELIGIBLE], steps: [SHORTLISTED], preferred: true, orderBy: [{ # JobCandidateOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
jobShares
Type: JobSharePaginator!
Get a list of job shares.
| Arguments |
|---|
jobs[ID!] |
accountTypes[AccountType!] |
isActiveBoolean |
companies[ID!] |
orderBy[JobShareOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query JobShares { jobShares(jobs: ["abc123"], accountTypes: [WORKER], isActive: true, companies: ["abc123"], orderBy: [{ # JobShareOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
jobs
Type: JobPaginator!
Get a list of jobs.
| Arguments |
|---|
accounts[ID!] |
owners[ID!] |
markets[MarketCode!] |
searchString |
currencies[Currency!] |
rateTypes[RateType!] |
paymentSchemes[PaymentScheme!] Deprecated |
skills[String!] |
experienceLevel[ExpectedExperienceLevel!] |
associations[Association!] |
locationPreferences[LocationPreference!] |
availableBoolean |
publishedBoolean |
completedBoolean |
removedBoolean |
hasProjectBoolean |
hasHireBoolean |
hasBidsBoolean |
externalIdentifiers[String!] |
orderBy[JobsOrderByClauseInput!] |
createdAtDateRangeDateRangeInput |
unfilledBoolean |
customFields[CustomFieldTypeValueInput!] |
startDateRangeDateRangeInput |
endDateRangeDateRangeInput |
isJobPostBoolean |
statuses[JobStatus!] |
firstInt! |
pageInt |
Example
query Jobs { jobs(accounts: ["abc123"], owners: ["abc123"], markets: [US], search: "example", currencies: [AED], rateTypes: [HOURLY], paymentSchemes: [ANY], skills: ["example"], experienceLevel: [STUDENT], associations: [SMALL_TASK], locationPreferences: [ONSITE_ONLY], available: true, published: true, completed: true, removed: true, hasProject: true, hasHire: true, hasBids: true, externalIdentifiers: ["example"], orderBy: [{ # JobsOrderByClauseInput fields }], createdAtDateRange: { # DateRangeInput fields }, unfilled: true, customFields: [{ # CustomFieldTypeValueInput fields }], startDateRange: { # DateRangeInput fields }, endDateRange: { # DateRangeInput fields }, isJobPost: true, statuses: [DRAFT], first: 10, page: 10) { __typename # ...plus the fields you need } }
milestone
Type: Milestone
Get a single milestone.
| Arguments |
|---|
idID! |
Example
query Milestone { milestone(id: "abc123") { __typename # ...plus the fields you need } }
milestones
Type: MilestonePaginator!
Get a list of milestones.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
hires[ID!] |
firstInt! |
pageInt |
Example
query Milestones { milestones(accounts: ["abc123"], hires: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
multiFactor
Type: MultiFactor
Retrieve a specific multi-factor authentication implementation.
| Arguments |
|---|
idID! |
Example
query MultiFactor { multiFactor(id: "abc123") { __typename # ...plus the fields you need } }
multiFactors
Type: MultiFactorPaginator!
Retrieve all multi-factor authentication implementation.
| Arguments |
|---|
statuses[MultiFactorStatus!] |
channels[MultiFactorChannel!] |
firstInt! |
pageInt |
Example
query MultiFactors { multiFactors(statuses: [APPROVED], channels: [EMAIL], first: 10, page: 10) { __typename # ...plus the fields you need } }
organisation
Type: Organisation
Get a specific organisation.
| Arguments |
|---|
idID! |
Example
query Organisation { organisation(id: "abc123") { __typename # ...plus the fields you need } }
organisationTrustedContact
Type: TrustedContact
Get a specific organisation trusted contact.
| Arguments |
|---|
idID! |
Example
query OrganisationTrustedContact { organisationTrustedContact(id: "abc123") { __typename # ...plus the fields you need } }
organisationTrustedContacts
Type: TrustedContactPaginator!
Get a list of organisation trusted contacts.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
workers[ID!] |
searchString |
skills[ID!] |
markets[MarketCode!] |
contactRegionsMarketRegionInput |
countries[String!] |
states[String!] |
invitedByUsersInvitedByInput |
statuses[ContactStatus!] |
originTrustedContactOrigin |
staffingAgencyStatusTrustedContactStaffingAgencyStatus |
managedStatusTrustedContactManagedStatus |
hireHistoryHireHistoryFilterInput |
hireStatusHireStatusFilterInput |
businessSetup[BusinessEntityType!] |
externalIdentifiers[String!] |
customFields[CustomFieldTypeValueInput!] |
orderBy[TrustedContactOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query OrganisationTrustedContacts { organisationTrustedContacts(accounts: ["abc123"], workers: ["abc123"], search: "example", skills: ["abc123"], markets: [US], contactRegions: { # MarketRegionInput fields }, countries: ["example"], states: ["example"], invitedByUsers: { # InvitedByInput fields }, statuses: [INVITED], origin: INVITED, staffingAgencyStatus: HAS_OWNERSHIP, managedStatus: STAFFING_AGENCY, hireHistory: { # HireHistoryFilterInput fields }, hireStatus: { # HireStatusFilterInput fields }, businessSetup: [COMMON], externalIdentifiers: ["example"], customFields: [{ # CustomFieldTypeValueInput fields }], orderBy: [{ # TrustedContactOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
partner
Type: Partner
Get a specific partner.
| Arguments |
|---|
idID! |
Example
query Partner { partner(id: "abc123") { __typename # ...plus the fields you need } }
payItems
Type: PayItemPaginator!
Experimental. Get a list of pay items in the catalogue of the authenticated accounts.
Archived pay items are left out unless includeArchived is true.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied, then all authenticated accounts will be used. |
includeArchivedBoolean |
firstInt! |
pageInt |
Example
query PayItems { payItems(accounts: ["abc123"], includeArchived: true, first: 10, page: 10) { __typename # ...plus the fields you need } }
paymentRequest
Type: PaymentRequest
Get a specific payment request.
| Arguments |
|---|
idID! |
Example
query PaymentRequest { paymentRequest(id: "abc123") { __typename # ...plus the fields you need } }
paymentRequests
Type: PaymentRequestPaginator!
Get a list of payment requests.
| Arguments |
|---|
accounts[ID!] |
currencies[Currency!] |
hasPurchaseOrderNumberBoolean |
hasTimesheetBoolean |
jobs[ID!] |
hires[ID!] |
hireOwners[ID!] |
clients[ID!] |
searchString |
statuses[PaymentRequestStatus!] |
requestTypes[PaymentRequestType!] |
workerStatuses[PaymentRequestWorkerStatus!] |
workerPayoutStatuses[PaymentRequestWorkerPayoutStatus!] |
isPayrolledBooleanThis may include payment requests that were paid outside of payroll. |
timesheetPeriodDateRangeInput |
rateTypes[RateType!] |
requestedDateRangeDateRangeInput |
billingStartDateRangeDateRangeInput |
billingEndDateRangeDateRangeInput |
hasExpensesBoolean |
hasBatchBoolean |
batchIds[ID!] |
externalIdentifiers[String!] |
orderBy[PaymentRequestOrderByClauseInput!] |
viewerRolePaymentRequestViewerRoleOnly filters within the account scope set by the accounts arg — without accounts there’s nothing for this filter to act on. |
firstInt! |
pageInt |
Example
query PaymentRequests { paymentRequests(accounts: ["abc123"], currencies: [AED], hasPurchaseOrderNumber: true, hasTimesheet: true, jobs: ["abc123"], hires: ["abc123"], hireOwners: ["abc123"], clients: ["abc123"], search: "example", statuses: [APPROVED], requestTypes: [TIME], workerStatuses: [DRAFT], workerPayoutStatuses: [PAID], isPayrolled: true, timesheetPeriod: { # DateRangeInput fields }, rateTypes: [HOURLY], requestedDateRange: { # DateRangeInput fields }, billingStartDateRange: { # DateRangeInput fields }, billingEndDateRange: { # DateRangeInput fields }, hasExpenses: true, hasBatch: true, batchIds: ["abc123"], externalIdentifiers: ["example"], orderBy: [{ # PaymentRequestOrderByClauseInput fields }], viewerRole: PAYER, first: 10, page: 10) { __typename # ...plus the fields you need } }
profile
Type: User!
Get the authenticated user that is viewing the API.
Example
query Profile { profile { __typename # ...plus the fields you need } }
project
Type: Project
Get a specific project.
| Arguments |
|---|
idID! |
Example
query Project { project(id: "abc123") { __typename # ...plus the fields you need } }
projects
Type: ProjectPaginator!
Get a list of projects.
| Arguments |
|---|
accounts[ID!]If no accounts supplied then all authenticated accounts will be used. |
searchString |
status[ProjectStatusFilter!] |
owners[ID!] |
externalIdentifiers[String!] |
firstInt! |
pageInt |
Example
query Projects { projects(accounts: ["abc123"], search: "example", status: [OPEN], owners: ["abc123"], externalIdentifiers: ["example"], first: 10, page: 10) { __typename # ...plus the fields you need } }
recruiter
Type: Recruiter
Get a specific recruiter.
| Arguments |
|---|
idID! |
Example
query Recruiter { recruiter(id: "abc123") { __typename # ...plus the fields you need } }
recruiterCandidate
Type: RecruiterCandidate
Get a specific recruiter candidate.
| Arguments |
|---|
idID! |
Example
query RecruiterCandidate { recruiterCandidate(id: "abc123") { __typename # ...plus the fields you need } }
recruiterCandidates
Type: RecruiterCandidatePaginator!
Get a list of recruiter candidates.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
statusContactStatus |
searchString |
hasPendingActionsBoolean |
firstInt! |
pageInt |
Example
query RecruiterCandidates { recruiterCandidates(accounts: ["abc123"], status: INVITED, search: "example", hasPendingActions: true, first: 10, page: 10) { __typename # ...plus the fields you need } }
recruiters
Type: RecruiterPaginator!
Get a list of recruiters.
| Arguments |
|---|
searchString |
firstInt! |
pageInt |
Example
query Recruiters { recruiters(search: "example", first: 10, page: 10) { __typename # ...plus the fields you need } }
skills
Type: SkillPaginator!
Get a list of skills.
| Arguments |
|---|
searchStringSearch will be performed within all three name, name_en, name_da. |
skillableType[SkillableType!] |
orderBy[SkillOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query Skills { skills(search: "example", skillableType: [WORKER], orderBy: [{ # SkillOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
staffingAgencyClients
Type: SupplierClientPaginator!
Experimental. The end clients the viewer’s staffing agencies work for: one row per client link, direct or through an MSP.
| Arguments |
|---|
accounts[ID!] |
searchString |
isDirectBoolean |
clientRegionsMarketRegionInput |
createdAtDateRangeDateRangeInput |
orderBy[StaffingAgencyClientOrderByClauseInput!] |
firstInt! |
pageInt |
Example
query StaffingAgencyClients { staffingAgencyClients(accounts: ["abc123"], search: "example", isDirect: true, clientRegions: { # MarketRegionInput fields }, createdAtDateRange: { # DateRangeInput fields }, orderBy: [{ # StaffingAgencyClientOrderByClauseInput fields }], first: 10, page: 10) { __typename # ...plus the fields you need } }
supplierCandidate
Type: SupplierCandidate
Get a specific supplier candidate.
| Arguments |
|---|
idID! |
Example
query SupplierCandidate { supplierCandidate(id: "abc123") { __typename # ...plus the fields you need } }
supplierCandidates
Type: SupplierCandidatePaginator!
Get a list of supplier candidates for the authenticated supplier account.
| Arguments |
|---|
statusContactStatus |
searchString |
firstInt! |
pageInt |
Example
query SupplierCandidates { supplierCandidates(status: INVITED, search: "example", first: 10, page: 10) { __typename # ...plus the fields you need } }
supplierSharedCustomFields
Type: CustomFieldPaginator!
Get custom fields shared by a supplier with its client companies. Returns only fields where sharedWithClients is true for the given supplier.
| Arguments |
|---|
supplierID! |
appliesTo[TypeSupportingCustomFieldValues!] |
firstInt! |
pageInt |
Example
query SupplierSharedCustomFields { supplierSharedCustomFields(supplier: "abc123", appliesTo: [JOB], first: 10, page: 10) { __typename # ...plus the fields you need } }
timesheet
Type: Timesheet
Get a specific timesheet.
| Arguments |
|---|
idID! |
Example
query Timesheet { timesheet(id: "abc123") { __typename # ...plus the fields you need } }
timesheets
Type: TimesheetPaginator!
Get a list of timesheets.
| Arguments |
|---|
accounts[ID!]If no accounts supplied then all authenticated accounts will be used. |
firstInt! |
pageInt |
Example
query Timesheets { timesheets(accounts: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
trustedContact
Type: TrustedContact
Get a specific trusted contact.
| Arguments |
|---|
idID! |
Example
query TrustedContact { trustedContact(id: "abc123") { __typename # ...plus the fields you need } }
trustedContactRegions
Type: [MarketWithRegions!]!
Experimental. The markets of the viewer’s own and organisation-shared trusted contacts, with all of their regions.
| Arguments |
|---|
accounts[ID!] |
Example
query TrustedContactRegions { trustedContactRegions(accounts: ["abc123"]) { __typename # ...plus the fields you need } }
trustedContacts
Type: TrustedContactPaginator!
Get a list of trusted contacts.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
workers[ID!] |
searchString |
skills[ID!] |
markets[MarketCode!] |
contactRegionsMarketRegionInput |
countries[String!] |
states[String!] |
invitedByUsersInvitedByInput |
statuses[ContactStatus!] |
originTrustedContactOrigin |
staffingAgencyStatusTrustedContactStaffingAgencyStatus |
managedStatusTrustedContactManagedStatus |
hireHistoryHireHistoryFilterInput |
hireStatusHireStatusFilterInput |
businessSetup[BusinessEntityType!] |
externalIdentifiers[String!] |
customFields[CustomFieldTypeValueInput!] |
orderBy[TrustedContactOrderByClauseInput!] |
createdAtDateRangeDateRangeInput |
verifiedWorkerReviewVerifiedWorkerReviewFilterInput |
firstInt! |
pageInt |
Example
query TrustedContacts { trustedContacts(accounts: ["abc123"], workers: ["abc123"], search: "example", skills: ["abc123"], markets: [US], contactRegions: { # MarketRegionInput fields }, countries: ["example"], states: ["example"], invitedByUsers: { # InvitedByInput fields }, statuses: [INVITED], origin: INVITED, staffingAgencyStatus: HAS_OWNERSHIP, managedStatus: STAFFING_AGENCY, hireHistory: { # HireHistoryFilterInput fields }, hireStatus: { # HireStatusFilterInput fields }, businessSetup: [COMMON], externalIdentifiers: ["example"], customFields: [{ # CustomFieldTypeValueInput fields }], orderBy: [{ # TrustedContactOrderByClauseInput fields }], createdAtDateRange: { # DateRangeInput fields }, verifiedWorkerReview: { # VerifiedWorkerReviewFilterInput fields }, first: 10, page: 10) { __typename # ...plus the fields you need } }
userGroup
Type: UserGroup
Get a specific user group.
| Arguments |
|---|
idID! |
Example
query UserGroup { userGroup(id: "abc123") { __typename # ...plus the fields you need } }
userGroups
Type: UserGroupPaginator!
Get a list of user groups.
| Arguments |
|---|
accounts[ID!]If no accounts supplied then all authenticated accounts will be used. |
searchString |
users[ID!] |
status[UserGroupStatus!] |
firstInt! |
pageInt |
Example
query UserGroups { userGroups(accounts: ["abc123"], search: "example", users: ["abc123"], status: [ACTIVE], first: 10, page: 10) { __typename # ...plus the fields you need } }
viewer
Type: User!
Get the authenticated user that is viewing the API.
Example
query Viewer { viewer { __typename # ...plus the fields you need } }
webhook
Type: Webhook
Get a specific webhook.
| Arguments |
|---|
idID! |
Example
query Webhook { webhook(id: "abc123") { __typename # ...plus the fields you need } }
webhookEvent
Type: WebhookEvent
Get a specific webhook event.
| Arguments |
|---|
idID! |
Example
query WebhookEvent { webhookEvent(id: "abc123") { __typename # ...plus the fields you need } }
webhookEventLogs
Type: WebhookEventLogPaginator!
Get a list of webhook event logs. They are returned in descending order of creation.
| Arguments |
|---|
webhookIdID |
webhookEventIdID |
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
firstInt! |
pageInt |
Example
query WebhookEventLogs { webhookEventLogs(webhookId: "abc123", webhookEventId: "abc123", accounts: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
webhookEvents
Type: WebhookEventPaginator!
Get a list of webhook events. They are returned in descending order of creation.
| Arguments |
|---|
webhookIdID |
firstInt! |
pageInt |
Example
query WebhookEvents { webhookEvents(webhookId: "abc123", first: 10, page: 10) { __typename # ...plus the fields you need } }
webhooks
Type: WebhookPaginator!
Get a list of webhooks.
| Arguments |
|---|
accounts[ID!]If no accounts are supplied then all authenticated accounts will be used. |
firstInt! |
pageInt |
Example
query Webhooks { webhooks(accounts: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }
worker
Type: Worker
Get a specific worker.
| Arguments |
|---|
idID! |
Example
query Worker { worker(id: "abc123") { __typename # ...plus the fields you need } }
workflow
Type: Workflow
Get a specific workflow by ID.
Requires the manage-approvals team permission on the owning company.
| Arguments |
|---|
idID! |
Example
query Workflow { workflow(id: "abc123") { __typename # ...plus the fields you need } }
workflowVariables
Type: WorkflowVariablePaginator!
List the available variables that can be used in approval rule conditions.
Variables represent the fields you can evaluate in conditions — for example, hourly rate, budget, or company-defined custom fields. The available variables depend on the trigger type: hire-related triggers expose rate and budget variables, while classification triggers expose the classification result.
Requires the manage-approvals team permission.
| Arguments |
|---|
accounts[ID!] |
appliesToApprovalTrigger! |
firstInt! |
pageInt |
Example
query WorkflowVariables { workflowVariables(accounts: ["abc123"], appliesTo: NONE, first: 10, page: 10) { __typename # ...plus the fields you need } }
workflows
Type: WorkflowPaginator!
List all workflows accessible to the authenticated user.
Requires the manage-approvals team permission.
| Arguments |
|---|
accounts[ID!] |
firstInt! |
pageInt |
Example
query Workflows { workflows(accounts: ["abc123"], first: 10, page: 10) { __typename # ...plus the fields you need } }