> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rocketpunch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Remove event host

> Removes a host from an event.

Authentication: The `Authorization: Bearer <jwt>` header is required.

Required OAuth scope: `event:write`.



## OpenAPI

````yaml /openapi/openapi.en.json delete /api/v1/events/{eventId}/hosts/{hostId}
openapi: 3.1.0
info:
  title: Rocketpunch Open API
  description: >-
    Rocketpunch Open API is a REST API for searching and integrating Rocketpunch
    jobs, events, posts, and related data.


    ## Authentication

    Public-data APIs use the `X-RP-API-Key` header. APIs that require user
    permissions use the `Authorization: Bearer <jwt>` header. Check each
    operation's `security` field for its authentication requirement.


    ## Choosing an App Type

    Choose the app type that matches the APIs you plan to use.


    | Type | Meaning | Typical APIs |

    |---|---|---|

    | Simple API Key app | An app for reading public data. No user login is
    required. | Job, event, and post read APIs |

    | OAuth client app | An app where a Rocketpunch user logs in and grants
    permissions. | APIs that require user context, such as creating, updating,
    or deleting posts |


    Public data read APIs are called with just the App Key (the `X-RP-API-Key`
    header).

    APIs that require user permissions use an access token issued to an OAuth
    client app in the `Authorization: Bearer <jwt>` header.


    ## OAuth 2.0 Authentication

    This service hosts OAuth 2.0 Authorization Code + PKCE (S256) for
    user-context APIs.


    - Authorization screen: `GET /oauth/authorize`

    - Token issue/refresh: `POST /oauth/token`

    - Token revocation: `POST /oauth/revoke`

    - User information: `GET /oauth/userinfo` (`profile` scope required; `email`
    claim requires the `email` scope)


    ## Rate Limits

    Global limit per App Key: **60 requests per minute / 5,000 requests per
    day**. Exceeding the limit returns `429` with `Retry-After`.

    Successful responses include the `X-RP-RateLimit-Remaining` header.


    Some user-context write operations also have operation-specific limits (per
    minute / per hour / per day).

    If either the global limit or an operation-specific limit is exceeded, the
    API returns 429.

    When an operation-specific limit is exceeded, the response includes
    `X-RP-RateLimit-Scope` with the operation identifier.

    Successful responses may include `X-RP-RateLimit-Scope-Remaining`, the
    remaining calls for that operation in the current minute.


    | Operation identifier | Operations | Per minute | Per hour | Per day |

    |---|---|---:|---:|---:|

    | `post.create` | Create post | 2 | 10 | 50 |

    | `post.update` | Update post | 5 | 40 | 300 |

    | `post.delete` | Delete post | 2 | 10 | 30 |

    | `job.create` | Create job posting | 2 | 10 | 50 |

    | `job.update` | Update job posting | 5 | 40 | 300 |

    | `job.delete` | Delete job posting | 2 | 10 | 30 |

    | `job.publish` | Publish job posting | 5 | 30 | 150 |

    | `job.disable` | Deactivate job posting | 5 | 30 | 150 |

    | `event.create` | Create event | 2 | 10 | 50 |

    | `event.update` | Update event | 5 | 40 | 300 |

    | `event.delete` | Delete event | 2 | 10 | 30 |

    | `event.sub.create` | Create event sessions, FAQs, hosts, or tickets | 10 |
    100 | 500 |

    | `event.sub.update` | Update event sessions, FAQs, hosts, or tickets | 15 |
    150 | 800 |

    | `event.sub.delete` | Delete event sessions, FAQs, hosts, or tickets | 10 |
    100 | 400 |


    ## Localization (Accept-Language)

    Response language is selected by the `Accept-Language` header. The default
    is `ko`.


    Supported locales for code catalog labels (`/v1/codes/*`):


    | Code | Language | Note |

    |---|---|---|

    | `ko` | Korean | Default |

    | `en` | English | |

    | `ja` | Japanese | |

    | `zh-CN` | Simplified Chinese | Mainland China |

    | `zh-TW` | Traditional Chinese | Taiwan and Hong Kong |

    | `es` | Spanish | |

    | `fr` | French | |

    | `de` | German | |

    | `pt` | Portuguese | |

    | `th` | Thai | |

    | `vi` | Vietnamese | |


    Body translations for jobs, events, and posts are provided only for `en`,
    `ja`, `zh-CN`, and `zh-TW`. Other languages return the original content.


    ## Pagination

    List and search responses use page-based pagination.

    - `page`: page number to retrieve. Starts at **1** (default: `1`). Values
    below 1 are normalized to 1.

    - `pageSize`: items per page. Default `20`, **maximum `50`**. Out-of-range
    values are normalized to 1-50.


    Responses include these common fields:

    - `totalItems`: total number of matched items

    - `totalPages`: total pages (`ceil(totalItems / pageSize)`)

    - `page` / `pageSize`: the normalized page number and size

    - `items`: items on the current page


    If `page` is greater than `totalPages`, the API returns an empty `items`
    array without an error.


    ## Errors

    All non-2xx responses use the same `ErrorResponse` format.


    ### Error Response Format

    ```json

    {
      "code": "C0005",
      "message": "pageSize must be 50 or less. Input: 51",
      "timestamp": "2026-05-20T09:00:00",
      "details": "pageSize"
    }

    ```


    | Field | Description |

    |---|---|

    | `code` | Error code. Use one of the values in the table below for
    client-side branching |

    | `message` | Human-readable error message |

    | `timestamp` | Time when the error occurred (UTC) |

    | `details` | Problem field or reason. `null` when unavailable |


    ### Error Codes

    | HTTP | code | Meaning |

    |---|---|---|

    | 401 | C0001 | Missing or invalid API Key |

    | 400 | C0002 | Invalid input format |

    | 400 | C0005 | Query parameter validation failed |

    | 404 | C0008 / EV001 / R0001 / P0002 | Resource not found |

    | 429 | C0010 | Rate limit exceeded |

    | 500 | C9999 | Server error |
  version: 1.0 beta
servers:
  - url: https://openapi.rocketpunch.com
    description: Production
security:
  - apiKey: []
tags:
  - name: OAuth Authorization
    description: >-
      Start of the Authorization Code + PKCE flow. Send the user to `GET
      /oauth/authorize`; after login and consent, a one-time authorization code
      is delivered to the registered redirect_uri. If an existing valid consent
      already covers the requested scopes, the consent screen is skipped.
      Exchange this code for an access token in OAuth Token.
  - name: Posts
    description: Post read, create, update, and delete APIs
  - name: Codes
    description: >-
      Code lists used by search filters. Pass the response `code` value directly
      as a search parameter. `displayName` is localized by Accept-Language.
  - name: OAuth UserInfo
    description: >-
      Returns user claims compatible with the OIDC Standard Claims shape. This
      does not make the service a full OIDC Provider or issue ID Tokens.
  - name: OAuth Token
    description: >-
      Exchange an authorization code or refresh token for an access token (`POST
      /oauth/token`) and revoke tokens that are no longer used (`POST
      /oauth/revoke`). Use issued access tokens as `Authorization: Bearer` for
      user-context API calls.
  - name: Events
    description: Event read, create, update, delete, and sub-resource APIs
  - name: Jobs
    description: Job posting read, create, update, and delete APIs
  - name: Me
    description: My account and permission APIs
paths:
  /api/v1/events/{eventId}/hosts/{hostId}:
    delete:
      tags:
        - Events
      summary: Remove event host
      description: |-
        Removes a host from an event.

        Authentication: The `Authorization: Bearer <jwt>` header is required.

        Required OAuth scope: `event:write`.
      operationId: removeEventHost
      parameters:
        - name: eventId
          in: path
          description: Event ID
          required: true
          schema:
            type: string
          example: 8H2KQ9XJ4P
        - name: hostId
          in: path
          description: Host ID
          required: true
          schema:
            type: integer
            format: int64
          example: 1
        - $ref: '#/components/parameters/AcceptLanguage'
          in: header
      responses:
        '204':
          description: Deleted successfully (empty body).
        '403':
          description: Insufficient scope or permission denied.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
      security:
        - bearerAuth: []
components:
  parameters:
    AcceptLanguage:
      name: Accept-Language
      in: header
      description: >-
        Supported response locales: ko, en, ja, zh-CN, zh-TW, es, fr, de, pt,
        th, vi. Default is ko.
      required: false
      schema:
        type: string
        example: ko
  schemas:
    ErrorResponse:
      description: Common error response
      properties:
        code:
          type: string
          description: Error code (see the error code table)
          example: C0005
        message:
          type: string
          description: >-
            Human-readable error message (dynamic text including the violated
            rule and input value)
          example: 'pageSize must be 50 or less. Input: 51'
        timestamp:
          type: string
          format: date-time
          example: '2026-05-20T09:00:00'
        details:
          oneOf:
            - type: string
              description: Input field associated with the error
              example: startDate
            - type: 'null'
      required:
        - code
        - message
        - timestamp
  responses:
    RateLimitExceeded:
      description: >-
        Rate limit exceeded. Returned when either the global App Key limit
        (60/min, 5,000/day) or an operation-specific limit (per minute / per
        hour / per day) is exceeded. When an operation-specific limit is
        exceeded, the `X-RP-RateLimit-Scope` header identifies the operation.
        See the Rate Limits section for current default limits.
      headers:
        Retry-After:
          description: Seconds to wait before retrying
          schema:
            type: integer
            format: int32
        X-RP-RateLimit-Remaining:
          description: Remaining calls in the current minute
          schema:
            type: integer
            format: int32
        X-RP-RateLimit-Scope:
          description: >-
            Operation identifier when an operation-specific limit is exceeded.
            Omitted when only the global limit is exceeded.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-RP-API-Key
      in: header
    bearerAuth:
      type: http
      description: >-
        Access token for user-context authentication. Send it in the
        `Authorization: Bearer <jwt>` header. Use the token your OAuth client
        app obtained via the Authorization Code + PKCE flow.
      scheme: bearer
      bearerFormat: JWT

````