(PUT) Update/Upsert partners

Update existing partners or create new ones with upsert operations.

Endpoint

PUT /api/partners

Upsert (update or insert) one or more partners. If id is provided, the partner is updated. If the ID does not exist, the request fails. To create new partners, omit the id field.

Endpoint text
PUT /api/partners

Authentication

Requires authentication with an API key that has the linksWrite scope.

Request Body

The request body must be an array of partner objects. Include the id field to update an existing partner, or omit it to create a new one.

You can upsert up to 10,000 partners in a single request. Requests above 10,000 items are rejected.

ParameterTypeRequiredDescription
id (body)string (UUID)YesRequired when updating. Omit to create a new partner. If provided, it must exist in your workspace or the request fails.
name (body)stringNoThe name of the partner. Required when creating a new partner (no id). Optional when updating.
email (body)string (email)NoEmail address of the partner. Optional for both create and update operations.
phone (body)stringNoPhone number of the partner. Optional for both create and update operations.

Update Behavior

When updating, only the fields you include are changed. Omitted fields keep their current values. To clear a value, send it explicitly as null.

Request Size

Ensure the request body contains at least one partner object.

Examples

Request cURL
curl -X PUT "https://hoko.to/api/partners" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Updated Partner",
      "email": "updated@example.com"
    }
  ]'
Request JavaScript
const response = await fetch("https://hoko.to/api/partners", {
  method: "PUT",
  headers: {
    "Authorization": "Bearer <API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify([
    {
      id: "550e8400-e29b-41d4-a716-446655440000",
      name: "Updated Partner",
      email: "updated@example.com"
    }
  ])
});
const partners = await response.json();
Response json
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Updated Partner",
    "email": "updated@example.com",
    "phone": null,
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
]