# Sona Client API > The Sona Client API provides programmatic access to manage workforce operations including users, shifts, absences, employment periods, and organisational structures. Version 1.14. Base URL: `https://api.sona.is`. Authenticate every request with an `Authorization: Bearer ` header; tokens are scoped to one organisation and issued by Sona. Request and response bodies are JSON. Read the overview before the endpoint pages: it explains token permissions, Sona IDs vs external IDs (`idx`), pagination and errors. ## Guides - [Overview](https://api.sona.is/api/docs/v1/overview.md): authentication, token permissions, identifiers, pagination, errors, date formats, incremental sync and common workflows ## Endpoints - [Absences](https://api.sona.is/api/docs/v1/reference/absences.md): Get a list of absences; Create a new absence; Show an absence; Update an absence; Delete an absence; Amend an absence period - [AbsenceSubtypes](https://api.sona.is/api/docs/v1/reference/absence-subtypes.md): Get a list of Absence Subtypes for a given Absence Type; Get an individual Absence Subtype - [AbsenceTypes](https://api.sona.is/api/docs/v1/reference/absence-types.md): Get a list of AbsenceTypes; Get an individual absence_type - [AbsenceYears](https://api.sona.is/api/docs/v1/reference/absence-years.md): Create a new absence year - [Agencies](https://api.sona.is/api/docs/v1/reference/agencies.md): Get a list of Agencies; Get an individual agency; Gets agencies linked to the organisational unit; Links an agency to the organisational unit; Unlinks an agency to the organisational unit - [AnnualLeaveRequests](https://api.sona.is/api/docs/v1/reference/annual-leave-requests.md): Get a list of annual leave requests; Get an annual leave request by ID - [AuthStrategies](https://api.sona.is/api/docs/v1/reference/auth-strategies.md): Get a list of auth strategies for a user; Get an individual user auth strategy; Update an individual user auth strategy; Delete an individual user auth strategy - [CarePackages](https://api.sona.is/api/docs/v1/reference/care-packages.md): List care packages; Get a care package; List an hour line's approval statuses; Add an approval status to an hour line; Add the same approval status to every hour line of a package; List a person's care packages; Create a care package - [ContractedHours](https://api.sona.is/api/docs/v1/reference/contracted-hours.md): Get a list of ContractedHours; Create new contracted hours; Get individual contracted_hours; Update an existing contracted hours; Delete contracted hours - [ContractTypes](https://api.sona.is/api/docs/v1/reference/contract-types.md): Get a list of Contract Types; Get an individual contract type - [CsvImports](https://api.sona.is/api/docs/v1/reference/csv-imports.md): Upload a CSV file to the importer - [CustomFormEntries](https://api.sona.is/api/docs/v1/reference/custom-form-entries.md): Get a list of CustomFormEntries; Create new custom form entry; Get individual custom_form_entries; Update an existing custom form entry; Delete a custom form entry - [CustomForms](https://api.sona.is/api/docs/v1/reference/custom-forms.md): Get a list of CustomForms; Get individual custom_form - [EmploymentPeriods](https://api.sona.is/api/docs/v1/reference/employment-periods.md): List of Employment Periods; Create a new employment_period; Delete an employment period; Update an individual employment_period - [EmploymentSpecs](https://api.sona.is/api/docs/v1/reference/employment-specs.md): Bulk update employment spec contract types; Update an employment spec contract type - [ExternalMappings](https://api.sona.is/api/docs/v1/reference/external-mappings.md): Get a list of external mappings; Create a new external mapping; Get a single external mapping; Update an external mapping - [FeatureSet](https://api.sona.is/api/docs/v1/reference/feature-set.md): Gets the organisational unit features; Creates new organisational unit features; Updates the organisational unit features; Deletes the organisational unit features - [ForecastRuns](https://api.sona.is/api/docs/v1/reference/forecast-runs.md): Record the start of a forecast run; Record the completion of a forecast run; Record the failure of a forecast run; Backfill forecast train WAPE; Get forecast runs; Get a forecast run - [HolidayAdjustments](https://api.sona.is/api/docs/v1/reference/holiday-adjustments.md): Get a list of holiday adjustments; Create a holiday adjustment - [HolidayBalance](https://api.sona.is/api/docs/v1/reference/holiday-balance.md): Get a user's holiday balance - [InterpolationPreview](https://api.sona.is/api/docs/v1/reference/interpolation-preview.md): Preview rule interpolation across a date range - [Jobs](https://api.sona.is/api/docs/v1/reference/jobs.md): Get a list of jobs; Get an individual job - [Levels](https://api.sona.is/api/docs/v1/reference/levels.md): Get a list of levels; Get an individual level - [LockedPeriods](https://api.sona.is/api/docs/v1/reference/locked-periods.md): Get a list of locked periods - [MetricCalculations](https://api.sona.is/api/docs/v1/reference/metric-calculations.md): Lists per-customer metric calculations - [Metrics](https://api.sona.is/api/docs/v1/reference/metrics.md): Get a list of Metrics; Store the values of a given metric for certain times; Store metric values for multiple org units in a single transaction; Store historical metric values with a custom current_timestamp; Store historical metric values for multiple org units with a custom timestamp; Get the latest timestamp of a given metric - [MetricValues](https://api.sona.is/api/docs/v1/reference/metric-values.md): Get a list of Metric Values - [OrganisationCalendar](https://api.sona.is/api/docs/v1/reference/organisation-calendar.md): Gets the organisation calendar - [OrgAttributes](https://api.sona.is/api/docs/v1/reference/org-attributes.md): List all org attributes; Create an org attribute; Get an org attribute; Update an org attribute; Delete an org attribute - [OrgAttributesBatch](https://api.sona.is/api/docs/v1/reference/org-attributes-batch.md): Batch query org attribute values - [OrgUnitAttributes](https://api.sona.is/api/docs/v1/reference/org-unit-attributes.md): List org unit attributes; Create an org unit attribute; Get an org unit attribute; Update an org unit attribute; Delete an org unit attribute - [OrgUnitLocation](https://api.sona.is/api/docs/v1/reference/org-unit-location.md): Get an org unit's location; Create or update an org unit's location; Delete the org unit's location - [OrgUnits](https://api.sona.is/api/docs/v1/reference/org-units.md): Get a list of Org Units; Create an Org Unit; Get an individual org unit; Update an Org Unit; Set public holidays for the org unit; Remove selected public holidays from the org unit public holidays list - [OrgUnitTypes](https://api.sona.is/api/docs/v1/reference/org-unit-types.md): Get a list of Org Unit Types; Create an Org Unit Type; Get an individual org unit type - [PayGroupPayPeriods](https://api.sona.is/api/docs/v1/reference/pay-group-pay-periods.md): List pay periods for a pay group - [PayGroups](https://api.sona.is/api/docs/v1/reference/pay-groups.md): Get a list of pay groups; Get a single pay group - [PayLines](https://api.sona.is/api/docs/v1/reference/pay-lines.md): Get a list of pay lines - [PayrollPaymentDeductionTypes](https://api.sona.is/api/docs/v1/reference/payroll-payment-deduction-types.md): List payroll payment/deduction types; Create a payroll payment/deduction type; Get a single payroll payment/deduction type; Update a payroll payment/deduction type - [PayrollSubmissionStatuses](https://api.sona.is/api/docs/v1/reference/payroll-submission-statuses.md): Get payroll submission statuses for worked shifts - [PayVariants](https://api.sona.is/api/docs/v1/reference/pay-variants.md): Paginated list of pay variants; Get a list of pay variants; Paginated list of pay variants; Creates a pay variant; Gets a pay variant; Updates a pay variant; Deletes a pay variant; Links a pay variant to a shift type; Unlinks a pay variant from a shift type - [PeopleWeSupport](https://api.sona.is/api/docs/v1/reference/people-we-support.md): Get a list of people we support; Create person we support; Get a person we support; Update person we support; List a person's status history; List status records across your organisation - [PeopleWeSupportBudgets](https://api.sona.is/api/docs/v1/reference/people-we-support-budgets.md): Get list of people we support budget entries; Create people we support budget entry; Update people we support budget entry - [PermissionRoles](https://api.sona.is/api/docs/v1/reference/permission-roles.md): Get a list of permission roles; Update permission roles for an employment period; Add permission roles for an employment period; Remove permission roles for an employment period; Add org_unit to permission role for an employment period; Remove org_unit from permission role for an employment period - [ProductivityCalculate](https://api.sona.is/api/docs/v1/reference/productivity-calculate.md): Calculate productivity demand for an organisational unit - [ProductivityConfig](https://api.sona.is/api/docs/v1/reference/productivity-config.md): Gets the organisational unit productivity config - [PublicHolidays](https://api.sona.is/api/docs/v1/reference/public-holidays.md): Get list of public holidays - [RatesOfPay](https://api.sona.is/api/docs/v1/reference/rates-of-pay.md): Get a list of rates of pay; Create a new rate of pay; Get an individual rate_of_pay; Update an existing rate of pay; Delete a rate of pay - [RightToWorkDocuments](https://api.sona.is/api/docs/v1/reference/right-to-work-documents.md): Get a list of right to work documents; Create a new right to work document; Get a single right to work document.; Update a right to work document; Delete a right to work document entry - [Services](https://api.sona.is/api/docs/v1/reference/services.md): List services; Get a service; Get a service's audit log; Create or update a service's config; Replace a service's demand periods - [Shifts](https://api.sona.is/api/docs/v1/reference/shifts.md): Get a list of shifts; Create a new shift; Get an individual shift; Update an individual shift; Assign an individual shift to an agency; Cancel an individual shift; Unassign an individual shift from an agency - [ShiftTypes](https://api.sona.is/api/docs/v1/reference/shift-types.md): Get a list of Shift Types; Create a Shift Type; Get an individual shift type; Update a Shift Type - [SkillsAndAttributes](https://api.sona.is/api/docs/v1/reference/skills-and-attributes.md): Get a list of skills and attributes; Create new skills and attributes; Assigns a skill or an attribute to a user; Take back assigned skill or attribute from the user; Update an assigned skill or attribute for a user - [TerminationReasons](https://api.sona.is/api/docs/v1/reference/termination-reasons.md): Get a list of Termination Reasons; Get an individual termination reason - [TimeAndAttendancePolicy](https://api.sona.is/api/docs/v1/reference/time-and-attendance-policy.md): Gets a organisational unit's time and attendance policy; Creates an organisational unit's time and attendance policy; Updates an organisational unit's time and attendance policy; Deletes an organisational unit's time and attendance policy; Gets a shift type's time and attendance policy; Creates a shift type's time and attendance policy; Updates a shift type's time and attendance policy; Deletes a shift type's time and attendance policy - [TrainingCourseAttendances](https://api.sona.is/api/docs/v1/reference/training-course-attendances.md): Get a list of Training Course Attendances; Create a new training course attendance; Get an individual training course attendance; Update a training course attendance; Delete a training course attendance - [TrainingCourses](https://api.sona.is/api/docs/v1/reference/training-courses.md): Get a list of Training Courses; Create a new training course; Get an individual training course; Update a training course; Archive a training course; Turn an archived course back to live - [TrainingVenues](https://api.sona.is/api/docs/v1/reference/training-venues.md): Create a training venue - [TypesOfWork](https://api.sona.is/api/docs/v1/reference/types-of-work.md): Get a list of Types Of Work; Get an individual type of work - [User lookup](https://api.sona.is/api/docs/v1/reference/user-lookup.md): Resolve a single user from an external identifier (National Insurance number, employee number, external employee id, or email) and return bundled related data. Additional endpoints in this group may be added over time. - [Users](https://api.sona.is/api/docs/v1/reference/users.md): Get a list of users; Create a new user; Terminates an individual user's employment; Undo termination of an individual user's employment; Get an individual user; Update an individual user; Activate an individual user; Deactivate an individual user - [Webhook Subscriptions](https://api.sona.is/api/docs/v1/reference/webhook-subscriptions.md): Get a list of subscriptions; Create a new subscription; Delete a subscription - [WorkingPreferences](https://api.sona.is/api/docs/v1/reference/working-preferences.md): Get a list of working preferences; Create a working preference; Update a working preference; Get a working preference by ID - [WorkRestrictions](https://api.sona.is/api/docs/v1/reference/work-restrictions.md): Get a list of work restrictions; Create a work restriction; Get a work restriction by ID; Update a work restriction - [YapsterMigration](https://api.sona.is/api/docs/v1/reference/yapster-migration.md): Get a user's Yapster migration info - [YearlyHolidayAllowance](https://api.sona.is/api/docs/v1/reference/yearly-holiday-allowance.md): Get user's holiday allowance for a year; Update a user's holiday allowance for a year ## Optional - [Full documentation](https://api.sona.is/api/docs/v1/llms-full.txt): the overview and every endpoint page in one file - [OpenAPI spec](https://api.sona.is/api/docs/v1/swagger.json): machine-readable Swagger 2.0 definition - [Postman collection](https://api.sona.is/api/docs/v1/postman_collection.json): every endpoint, ready to import into Postman - [Webhooks](https://api.sona.is/api/docs/v1/webhooks): outbound webhook events (HTML)