Skip to content

Deel

Deel is a global workforce platform for contracts, HR, payroll, expenses, time off, recruiting, immigration, and IT operations.

ingestr supports Deel as a source through the Deel REST API.

URI format

plaintext
deel://?api_key=<api_key>
deel://?api_key=<api_key>&environment=sandbox

URI parameters:

  • api_key: A Deel organization API token. Give the token the read scopes needed by the tables you plan to ingest.
  • environment: Optional. Use production (the default) or sandbox. Sandbox tokens are separate from production tokens.

Some tables contain sensitive personal, employment, and payroll information. Deel returns only the fields and resources allowed by the token's scopes and sensitive-data settings.

Example usage

bash
ingestr ingest \
  --source-uri 'deel://?api_key=<api_key>' \
  --source-table people \
  --dest-uri duckdb:///deel.duckdb \
  --dest-table main.people

Nested Deel objects and arrays are preserved as JSON columns. Tables whose names start with contract_, people_, person_, eor_, legal_entity_, payroll_, or gp_ may make one request per matching parent record.

Organization and workforce tables

TablePrimary keyStrategyData
organizationsidreplaceCurrent organization
legal_entitiesidmergeLegal entities, including archived entities and payroll settings
peopleidmergeOrganization-wide people directory and employment summaries
people_detailsidmergeFull profile for every person, including custom fields and worker relations
people_personalperson_idreplacePersonal information for every accessible person
people_positionsperson_id, idreplaceHRIS positions for every person
people_worker_relationsperson_id, idreplaceWorker relationships for every person
person_custom_field_valuesperson_id, idreplaceCustom-field values for every person
people_custom_fieldsidreplacePeople custom-field definitions
departmentsidreplaceDepartments
teamsidreplaceTeams
groupsidmergeGroups, including archived groups
rolesidreplaceOrganization roles
working_locationsidreplaceWorking locations
managersidreplaceManagers
onboardingunique_idreplaceOnboarding tracker records
offboardingunique_idreplaceOffboarding tracker records
organization_tasksidreplaceOrganization tasks
organization_structuresidreplaceHRIS organization structures
worker_relation_typesidreplaceWorker-relation type definitions
industriesidmergeIndustry subcategories

Contract, time, payroll, and accounting tables

TablePrimary keyStrategyData
contractsidreplaceContract summaries and cost centers
contract_detailsidmergeFull details for every contract
contract_templatesidreplaceContract templates
contract_termination_reasonsidmergeContract termination reasons
contract_custom_fieldsidreplaceContract custom-field definitions
contract_custom_field_valuescontract_id, idreplaceCustom-field values for every contract
contract_adjustmentsidmergeAdjustments for every contract
contract_amendmentsidmergeAmendments for every contract
contract_ic_invoicing_taxescontract_idreplaceIndependent-contractor invoicing taxes
contract_milestonesidreplaceMilestones for milestone contracts
contract_off_cycle_paymentsidreplaceContractor off-cycle payments
contract_payment_cyclescontract_id, idreplaceContractor payment cycles
contract_taskscontract_id, idreplaceContractor tasks
eor_benefitscontract_id, idreplaceBenefits for EOR contracts
eor_amendmentsidmergeAmendments for EOR contracts
eor_documentscontract_id, document_typereplaceDocuments for EOR contracts
timesheetsidmergeTimesheets
hourly_report_root_presetsidreplaceHourly-report root presets
adjustment_categoriesidreplaceAdjustment categories
invoice_adjustmentsidmergeInvoice adjustments
invoicesidmergeOrganization invoices
deel_invoicesidreplaceDeel fee invoices
paymentsidmergePayment receipts
refund_statementsidmergeRefund statements
time_offsidmergeTime-off requests, including deleted requests
shift_ratesexternal_idmergeTime-tracking shift rates
shiftsexternal_idmergeTime-tracking shifts
legal_entity_cost_centersidmergeCost centers for every legal entity
payroll_cyclesidmergePayroll cycles for every legal entity
gross_to_net_reportspayroll_cycle_id, contract_oidmergeGross-to-net records for payroll cycles
gp_payroll_eventsidreplaceGlobal Payroll events for every legal entity
gp_gross_to_net_reportspayroll_event_id, contractIdmergeGlobal Payroll gross-to-net records

Recruiting, IT, immigration, and webhook tables

TablePrimary keyStrategyData
ats_application_sourcesidmergeATS application sources
ats_applicationsidreplaceATS applications
ats_candidatesidmergeATS candidates
ats_departmentsidmergeATS departments
ats_employment_typesidmergeATS employment types
ats_hiring_membersidmergeATS hiring members
ats_job_boardsidmergeATS job boards
ats_jobsidmergeATS jobs
ats_locationsidmergeATS locations
ats_offersidmergeATS offers
ats_candidate_archivation_reasonsidreplaceCandidate archivation reasons
ats_offer_rejection_reasonsidreplaceOffer rejection reasons
ats_job_closure_reasonsidreplaceJob closure reasons
ats_email_templatesidmergePublished ATS email templates
ats_interviewsidmergeATS interviews
ats_job_postingsidmergeATS job postings
ats_openingsidmergeATS job openings
ats_tagsidmergeATS candidate tags
ats_teamsidmergeATS teams
it_assetsidmergeDeel IT assets
it_ordersidmergeDeel IT orders
it_policiesidreplaceDeel IT hardware policies
immigration_casesidmergeClient immigration cases
webhooksidreplaceConfigured webhooks
webhook_event_typesidmergeAvailable webhook event types

Lookup tables

TablePrimary keyData
countriescodeSupported countries and country capabilities
currenciescodeSupported currencies
job_titlesidJob titles
senioritiesidSeniority levels
time_off_typesnameTime-off type names

Feature-specific tables return an API error when the corresponding Deel product or token scope is not enabled for the organization.