---
title: "Integrations - OTYS"
url: "https://docs.unified.to/integrations/otys"
description: "Build OTYS integrations faster with our Unified API — ATS data, API key, real-time sync."
date: "2026-10-01T23:34:56.864Z"
updated: "2026-11-09T09:58:50.194Z"
---

# OTYS integration

> What this integration supports through the Unified.to API, by object. Live data: `GET https://api.unified.to/unified/integration?type=otys` with your workspace API key (or Core MCP `list_unified_integrations` with `type: "otys"`). All integrations: https://docs.unified.to/integrations.md

## Overview

- **Type:** `otys`
- **Categories:** [ATS](https://docs.unified.to/ats/overview.md), [HR & Directory](https://docs.unified.to/hris/overview.md), [CRM](https://docs.unified.to/crm/overview.md), [Metadata](https://docs.unified.to/metadata/overview.md), [Passthrough](https://docs.unified.to/passthrough/overview.md)
- **Website:** https://www.otys.com
- **Vendor API docs:** https://ows.otys.nl/info/detail.php?service=Otys.Services.UserService
- **Launched:** 2026-05-07

## How end users connect

- **API key** entered by the end user: `API Key`
    - Use the OTYS Web Services JSON-RPC API key (provided by OTYS).

## Supported objects

| Object | Methods | Webhooks |
| --- | --- | --- |
| [ats_application](#ats_application) | list, get | created, updated |
| [ats_candidate](#ats_candidate) | list, get, create, update | created, updated |
| [ats_document](#ats_document) | list, get, create | none |
| [ats_job](#ats_job) | list, get, create, update | created, updated |
| [crm_company](#crm_company) | list, get | created, updated |
| [crm_contact](#crm_contact) | list, get | created, updated |
| [hris_employee](#hris_employee) | list, get | created, updated |
| [metadata_metadata](#metadata_metadata) | list, get | none |
| [passthrough](#passthrough) | none | none |

Values below come from the integration's support data. "Required list filters" must be sent on list calls; "Required on create" fields must be sent when creating. Webhook events are `native` (pushed by the vendor) or `virtual` (polled by Unified.to). Anything not listed is not supported; an unsupported method returns `501`.

### ats_application

- **Methods:** `list`, `get`
- **Webhooks:** `created` (virtual), `updated` (virtual)
- **Virtual webhook filters:** `virtual_webhook_candidate_id`, `virtual_webhook_job_id`, `virtual_webhook_limit`, `virtual_webhook_updated_gte`
- **List filters:** `list_candidate_id`, `list_job_id`, `list_limit`, `list_offset`, `list_order`, `list_sort_by_created_at`, `list_sort_by_updated_at`, `list_updated_gte`
- **Readable fields:** `answers`, `applied_at`, `candidate_id`, `created_at`, `id`, `job_id`, `original_status`, `rejected_reason`, `source`, `updated_at`, `user_id`
- **Writable fields:** none
- **Vendor objects:** `Otys.Services.ProcedureService`
- **Model:** https://docs.unified.to/ats/application/model.md

### ats_candidate

- **Methods:** `list`, `get`, `create`, `update`
- **Webhooks:** `created` (virtual), `updated` (virtual)
- **Virtual webhook filters:** `virtual_webhook_limit`, `virtual_webhook_updated_gte`
- **List filters:** `list_limit`, `list_offset`, `list_order`, `list_query`, `list_sort_by_created_at`, `list_sort_by_name`, `list_sort_by_updated_at`, `list_updated_gte`
- **Readable fields:** `address`, `created_at`, `emails`, `first_name`, `id`, `image_url`, `last_name`, `link_urls`, `metadata`, `name`, `telephones`, `updated_at`, `user_id`
- **Slow fields** (skipped unless you request them in `fields`): `metadata`
- **Writable fields:** `address`, `emails`, `first_name`, `last_name`, `link_urls`, `name`, `telephones`, `user_id`
- **Vendor objects:** `Otys.Services.CandidateService`
- **Model:** https://docs.unified.to/ats/candidate/model.md

### ats_document

- **Methods:** `list`, `get`, `create`
- **Webhooks:** none
- **List filters:** `list_application_id`, `list_candidate_id`, `list_job_id`, `list_limit`, `list_offset`
- **Readable fields:** `application_id`, `candidate_id`, `document_url`, `id`, `job_id`
- **Writable fields:** `application_id`, `candidate_id`, `document_data`, `document_url`, `job_id`, `type`
- **Required on create:** `filename`
- **Vendor objects:** `Otys.Services.DossierService`, `Otys.Services.AttachedDocumentsService`, `Otys.Services.DocumentTypeService`
- **Model:** https://docs.unified.to/ats/document/model.md

### ats_job

- **Methods:** `list`, `get`, `create`, `update`
- **Webhooks:** `created` (virtual), `updated` (virtual)
- **Virtual webhook filters:** `virtual_webhook_limit`, `virtual_webhook_updated_gte`
- **List filters:** `list_limit`, `list_offset`, `list_order`, `list_query`, `list_sort_by_created_at`, `list_sort_by_name`, `list_sort_by_updated_at`, `list_updated_gte`
- **Readable fields:** `addresses`, `closed_at`, `company_id`, `compensation`, `created_at`, `id`, `metadata`, `name`, `number_of_openings`, `public_job_urls`, `recruiter_ids`, `status`, `updated_at`
- **Slow fields** (skipped unless you request them in `fields`): `metadata`
- **Writable fields:** `addresses`, `closed_at`, `company_id`, `compensation`, `number_of_openings`, `recruiter_ids`, `status`
- **Required on create:** `name`
- **Vendor objects:** `Otys.Services.VacancyService`
- **Model:** https://docs.unified.to/ats/job/model.md

### crm_company

- **Methods:** `list`, `get`
- **Webhooks:** `created` (virtual), `updated` (virtual)
- **Virtual webhook filters:** `virtual_webhook_limit`, `virtual_webhook_updated_gte`, `virtual_webhook_user_id`
- **List filters:** `list_limit`, `list_offset`, `list_order`, `list_query`, `list_sort_by_created_at`, `list_sort_by_name`, `list_sort_by_updated_at`, `list_updated_gte`, `list_user_id`
- **Readable fields:** `address`, `created_at`, `domains`, `emails`, `id`, `name`, `telephones`, `updated_at`, `user_id`, `websites`
- **Writable fields:** none
- **Vendor objects:** `Otys.Services.RelationService`
- **Model:** https://docs.unified.to/crm/company/model.md

### crm_contact

- **Methods:** `list`, `get`
- **Webhooks:** `created` (virtual), `updated` (virtual)
- **Virtual webhook filters:** `virtual_webhook_company_id`, `virtual_webhook_limit`, `virtual_webhook_updated_gte`, `virtual_webhook_user_id`
- **List filters:** `list_company_id`, `list_limit`, `list_offset`, `list_order`, `list_query`, `list_sort_by_created_at`, `list_sort_by_name`, `list_sort_by_updated_at`, `list_updated_gte`, `list_user_id`
- **Readable fields:** `address`, `company_ids`, `created_at`, `emails`, `first_name`, `id`, `last_name`, `name`, `telephones`, `updated_at`, `user_id`
- **Writable fields:** none
- **Vendor objects:** `Otys.Services.RelationContactService`
- **Model:** https://docs.unified.to/crm/contact/model.md

### hris_employee

- **Methods:** `list`, `get`
- **Webhooks:** `created` (virtual), `updated` (virtual)
- **Virtual webhook filters:** `virtual_webhook_limit`
- **List filters:** `list_limit`, `list_offset`, `list_order`, `list_query`, `list_sort_by_created_at`, `list_sort_by_name`, `list_sort_by_updated_at`
- **Readable fields:** `address`, `emails`, `employee_roles`, `employment_status`, `first_name`, `id`, `last_name`, `name`, `salutation`, `telephones`, `title`
- **Writable fields:** none
- **Vendor objects:** `Otys.Services.UserService`
- **Model:** https://docs.unified.to/hris/employee/model.md

### metadata_metadata

- **Methods:** `list`, `get`
- **Webhooks:** none
- **List filters:** `list_limit`, `list_offset`
- **Required list filters:** `list_type`
- **Readable fields:** `format`, `id`, `name`, `object_type`, `original_format`, `slug`
- **Writable fields:** none
- **Vendor objects:** `Otys.Services.TextFieldService`, `Otys.Services.VacancyTextFieldService`, `Otys.Services.CrmTextfieldService`
- **Model:** https://docs.unified.to/metadata/metadata/model.md

### passthrough

- **Methods:** none
- **Webhooks:** none
- **Readable fields:** none
- **Writable fields:** none
