---
title: "WebhookEvents.batch_create_or_update"
method: POST
path: "/entities/WebhookEvents/batch-modify"
tags: ["Webhook"]
---

# WebhookEvents.batch_create_or_update

`POST /entities/WebhookEvents/batch-modify`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/WebhookEvents/batch-modify`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/WebhookEvents/batch-modify/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates or updates WebhookEvent records in one request: an item with an id updates that record, an item without one creates a new record.

## Query parameters

- `validation-level` integer
- `rollback-method` 0 | 1

## Request body

- BatchWebhookEventInput[]
  - `event` '*' | 'Account.*' | 'Account.Create' | 'Account.Delete' | 'Account.DocumentLinked' | 'Account.OwnerChanged' | 'Account.Update' | 'ActivityRelation.*' | 'ActivityRelation.Create' | 'ActivityRelation.Delete' | 'ActivityRelation.Update' | 'Appointment.*' | 'Appointment.Comment' | 'Appointment.Create' | 'Appointment.Delete' | 'Appointment.DocumentLinked' | 'Appointment.OwnerChanged' | 'Appointment.Update' | 'Contact.*' | 'Contact.Create' | 'Contact.Delete' | 'Contact.DocumentLinked' | 'Contact.OwnerChanged' | 'Contact.Update' | 'ContactAccountRelation.*' | 'ContactAccountRelation.Create' | 'ContactAccountRelation.Delete' | 'ContactAccountRelation.Update' | 'Currency.*' | 'Currency.Create' | 'Currency.Delete' | 'Currency.Update' | 'CurrencyExchangeRate.*' | 'CurrencyExchangeRate.Create' | 'CurrencyExchangeRate.Delete' | 'CurrencyExchangeRate.Update' | 'CurrencyExchangeRatesList.*' | 'CurrencyExchangeRatesList.Create' | 'CurrencyExchangeRatesList.Delete' | 'CurrencyExchangeRatesList.Update' | 'CustomEntity.*' | 'CustomEntity.Create' | 'CustomEntity.Delete' | 'CustomEntity.DocumentLinked' | 'CustomEntity.OwnerChanged' | 'CustomEntity.Update' | 'Email.*' | 'Email.Create' | 'Email.Delete' | 'Email.DocumentLinked' | 'Email.Update' | 'Lead.*' | 'Lead.BackToLead' | 'Lead.Create' | 'Lead.Delete' | 'Lead.DocumentLinked' | 'Lead.Lost' | 'Lead.OwnerChanged' | 'Lead.Update' | 'LeadOpptyAccountRelation.*' | 'LeadOpptyAccountRelation.Create' | 'LeadOpptyAccountRelation.Delete' | 'LeadOpptyAccountRelation.Update' | 'LeadOpptyContactRelation.*' | 'LeadOpptyContactRelation.Create' | 'LeadOpptyContactRelation.Delete' | 'LeadOpptyContactRelation.Update' | 'Memo.*' | 'Memo.Comment' | 'Memo.Create' | 'Memo.Delete' | 'Memo.DocumentLinked' | 'Memo.Update' | 'Message.*' | 'Message.Create' | 'Message.Delete' | 'Message.DocumentLinked' | 'Message.Update' | 'Note.*' | 'Note.Create' | 'Note.Delete' | 'Note.Update' | 'Opportunity.*' | 'Opportunity.Create' | 'Opportunity.Delete' | 'Opportunity.DocumentLinked' | 'Opportunity.Lost' | 'Opportunity.Move' | 'Opportunity.OwnerChanged' | 'Opportunity.Qualify' | 'Opportunity.Update' | 'Opportunity.Won' | 'OpptyProductRelation.*' | 'OpptyProductRelation.Create' | 'OpptyProductRelation.Delete' | 'OpptyProductRelation.Update' | 'Product.*' | 'Product.Create' | 'Product.Delete' | 'Product.Update' | 'ProductPriceList.*' | 'ProductPriceList.Create' | 'ProductPriceList.Delete' | 'ProductPriceList.Update' | 'ProductPriceListPrice.*' | 'ProductPriceListPrice.Create' | 'ProductPriceListPrice.Delete' | 'ProductPriceListPrice.Update' | 'Project.*' | 'Project.Create' | 'Project.Delete' | 'Project.DocumentLinked' | 'Project.OwnerChanged' | 'Project.Update' | 'Quote.*' | 'Quote.Create' | 'Quote.Delete' | 'Quote.DocumentLinked' | 'Quote.Lost' | 'Quote.Move' | 'Quote.OwnerChanged' | 'Quote.Update' | 'Quote.Won' | 'QuoteAccountRelation.*' | 'QuoteAccountRelation.Create' | 'QuoteAccountRelation.Delete' | 'QuoteAccountRelation.Update' | 'QuoteContactRelation.*' | 'QuoteContactRelation.Create' | 'QuoteContactRelation.Delete' | 'QuoteContactRelation.Update' | 'Task.*' | 'Task.Comment' | 'Task.Create' | 'Task.Delete' | 'Task.DocumentLinked' | 'Task.OwnerChanged' | 'Task.Update': Event type the parent webhook subscribes to (e.g. Account.Create, Lead.Update). The webhook fires whenever an event of this type occurs in the team space.
  - `webhook_id` string, uuid: Id of the parent webhook.
  - `id` string, uuid: ID of object to update.

## Response `200`

Result per item, in request order: the id of the created or updated record, or the error.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` union[]
    - union
      - string, uuid: Id of the created or updated record.
      - Error: The body of every REST error. `code` and `name` are stable identifiers; `message` is for people. The full list of codes is at https://developers.coevera.com/reference/errors/.
        - `http_status` integer, required: HTTP status code.
        - `code` integer: Numeric code of the API error.
        - `name` string: Name of the API error.
        - `message` string: Message describing the error.
        - `success` boolean, required: Always false on error.

## Other responses

- `400`: Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`.
- `401`: Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED).
- `422`: Validation failed (code 40000, with the failing fields) or a required parameter is missing (code 119). By default one failed item fails a whole batch and nothing is written.
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
