[[claim-connector-sync-job-api]]
=== Claim connector sync job API
++++
<titleabbrev>Claim connector sync job</titleabbrev>
++++

preview::[]

..New API reference
[sidebar]
--
For the most up-to-date API details, refer to {api-es}/group/endpoint-connector[Connector APIs].
--

Claims a connector sync job.

The `_claim` endpoint is not intended for direct connector management by users. It is there to support the implementation of services that utilize the https://github.com/elastic/connectors/blob/main/docs/CONNECTOR_PROTOCOL.md[Connector Protocol] to communicate with {es}.

To get started with Connector APIs, check out <<es-connectors-tutorial-api, our tutorial>>.


[[claim-connector-sync-job-api-request]]
==== {api-request-title}
`PUT _connector/_sync_job/<connector_sync_job_id>/_claim`

[[claim-connector-sync-job-api-prereqs]]
==== {api-prereq-title}

* To sync data using self-managed connectors, you need to deploy the <<es-connectors-deploy-connector-service,Elastic connector service>>. on your own infrastructure. This service runs automatically on Elastic Cloud for Elastic managed connectors.
* The `connector_sync_job_id` parameter should reference an existing connector sync job.

[[claim-connector-sync-job-api-desc]]
==== {api-description-title}

Claims a connector sync job. This action updates the job's status to `in_progress` and sets the `last_seen` and `started_at` timestamps to the current time. Additionally, it can set the `sync_cursor` property for the sync job.

[[claim-connector-sync-job-api-path-params]]
==== {api-path-parms-title}

`connector_sync_job_id`::
(Required, string)

[role="child_attributes"]
[[claim-connector-sync-job-api-request-body]]
==== {api-request-body-title}

`worker_hostname`::
(Required, string) The host name of the current system that will execute the job.

`sync_cursor`::
(Optional, Object) The cursor object from the last incremental sync job. This should reference the `sync_cursor` field in the connector state for which the job is executed.


[[claim-connector-sync-job-api-response-codes]]
==== {api-response-codes-title}

`200`::
Connector sync job was successfully claimed.

`404`::
No connector sync job matching `connector_sync_job_id` could be found.

[[claim-connector-sync-job-api-example]]
==== {api-examples-title}

The following example claims the connector sync job with ID `my-connector-sync-job-id`:

[source,console]
----
PUT _connector/_sync_job/my-connector-sync-job-id/_claim
{
  "worker_hostname": "some-machine"
}
----
// TEST[skip:there's no way to clean up after creating a connector sync job, as we don't know the id ahead of time. Therefore, skip this test.]
