---
title: "Receive an issue.bot_unassigned event"
method: POST
path: "issue.bot_unassigned"
tags: ["Webhooks"]
---

# Receive an issue.bot_unassigned event

`POST issue.bot_unassigned` (webhook)

Beta: webhook event coverage and payload schemas may evolve. See /docs/integrations/webhooks for supported events and delivery limits. A person removes a bot from an issue's assignees. Delivered only to the targeted bot's app installation, never to organization or repository endpoints. GitCafe POSTs an immutable version 1 snapshot to an eligible active endpoint. Verify the timestamp and HMAC-SHA256 over timestamp + '.' + the unchanged UTF-8 request body using the indicated current signing-key generation. The signature value is sha256=<lowercase hex>. Retries reuse body and delivery identity but refresh timestamp and signing key. Delivery attempts are at least once; deduplicate by the signed body event id within each receiver subscription. The delivery header is an inspection identifier and is not covered by the signature. No ordering is promised. A 2xx response acknowledges acceptance. Network failures, 408, 425, 429 and 5xx retry within eight attempts or 24 hours; redirects and other statuses terminate. Retry-After is capped at one hour. See /docs/integrations/webhooks for configuration and failure recovery. This contract does not prove deployed transport qualification.

## Headers

- `X-GitCafe-Event` 'issue.bot_unassigned', required
- `X-GitCafe-Delivery` string, required
- `X-GitCafe-Timestamp` string, required
- `X-GitCafe-Key-Version` string, required
- `X-GitCafe-Signature` string, required

## Payload

- object
  - `id` string, required
  - `version` '1', required
  - `createdAt` string, date-time, required
  - `actor` object
    - `id` string, required
  - `repository` object, required
    - `id` string, required
    - `orgId` string, required
    - `owner` string
    - `name` string
  - `installation` object
    - `id` string, required
  - `type` 'issue.bot_unassigned', required
  - `bot` object, required
    - `id` string, required
  - `issue` IssueWebhookSnapshot, required: Beta: webhook event coverage and payload schemas may evolve. See /docs/integrations/webhooks for supported events and delivery limits.
    - `id` string, required
    - `number` integer, required
    - `title` string, required
    - `description` string, nullable
    - `assigneeIds` string[]
    - `labelIds` string[]
    - `state` 'triage' | 'backlog' | 'unstarted' | 'started' | 'completed' | 'canceled'
    - `version` integer
    - `priority` integer
    - `dueDate` string, date-time, nullable
    - `milestoneId` string, nullable
    - `locked` boolean
    - `pinned` boolean
    - `closedReason` string, nullable
    - `lockReason` string, nullable

## Acknowledgement `200`

The receiver accepted the event. Any 2xx status has this meaning.

## Other responses

- `429`: Retry within the delivery budget; Retry-After is capped at one hour.
- `503`: Temporary receiver failure; retry within the delivery budget.
- `default`: 408, 425 and other 5xx are retryable. Redirects and all other non-2xx statuses terminate this delivery.

---

[API](https://skmtc.dev/gitcafe/apis/git-cafe-api.md) - [All operations](https://skmtc.dev/gitcafe/apis/git-cafe-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitcafe/apis/git-cafe-api/revisions/9fa233d2986d?raw)
