---
title: "Application submitted"
method: POST
path: "application.submitted"
tags: ["Webhook Events"]
---

# Application submitted

`POST application.submitted` (webhook)

A creator's application arrived and waits on your team: a direct application, or an answered invitation. The one event to count applications by.

## Headers

- `webhook-id` string, required
- `webhook-timestamp` string, required
- `webhook-signature` string, required

## Payload

- ApplicationSubmittedWebhookEvent: A creator's application arrived and waits on your team: a direct application, or an answered invitation. The one event to count applications by.
  - `id` string, required: Event id; the `webhook-id` header. The same on every retry: dedupe on it.
  - `type` 'application.submitted', required
  - `timestamp` string, date-time, required: When the change happened
  - `organizationId` string, required
  - `actor` WebhookActor, required: Who caused the event: a member (`user`), an API key (`apiKeyId`), a creator, or viral.app itself (`system`); `surface` says where the change entered. Skip events your own API key caused to avoid loops.
    - `type` 'user' | 'api_key' | 'creator' | 'system', required
    - `surface` 'ui' | 'api' | 'copilot' | 'system', required
    - `userId` string, nullable, required
    - `apiKeyId` string, nullable, required
    - `impersonated` boolean, required
  - `data` object, required
    - `application` WebhookApplication, required
      - `id` string, required
      - `jobId` string, required
      - `status` 'open' | 'in_review' | 'accepted' | 'rejected' | 'withdrawn' | 'auto_closed' | 'invited' | 'not_interested' | 'answered' | 'retracted', required
      - `source` 'applied' | 'invited', required
      - `statusChangedAt` string, date-time, required
      - `answeredAt` string, date-time, nullable, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `applicant` object, required
        - `id` string, required
        - `name` string, nullable, required
        - `image` string, nullable, required
        - `orgCreatorId` string, nullable, required
        - `countryCode` string, nullable, required
      - `job` object, required
        - `id` string, required
        - `productTitle` string, required
        - `status` 'draft' | 'public' | 'paused', required
        - `jobType` 'canvas_ugc' | 'influencer' | 'ugc_ads' | 'creator_manager' | 'other', required
      - `chatId` string, nullable, required

## Acknowledgement `200`

Any 2xx within 15 seconds acknowledges the event. Anything else, a timeout or a redirect is retried (10 attempts over about 3 days); 410 disables the endpoint.

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
