micro1 · AsyncAPI Specification

Micro1 Webhooks

Version

View Spec View on GitHub Companyrecruitinghiringai-interviewstalent-assessmentcandidate-screeningapplicant-trackinghuman-resourcesproctoringwebhooksagent-nativeai-training-dataAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-31'
method: searched
source: >-
  https://ai-recruiter.micro1.ai/api-reference/getting-started/webhooks/introductions and
  https://ai-recruiter.micro1.ai/api-reference/getting-started/webhooks/examples (event catalog and
  sample payloads), cross-checked against the CreateWebhookRequest `event` enum in
  openapi/micro1-ai-recruiter-openapi.yml.
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: >-
  micro1 publishes NO AsyncAPI document. Probed /asyncapi.yaml and /asyncapi.json on the docs host
  and the API host — both miss, and nothing in the GitHub search surfaced one. This file is the
  captured webhook catalog, not a generated AsyncAPI; no AsyncAPI pointer is wired for micro1
  because none exists.
description: >-
  micro1's event surface is outbound HTTP webhooks only — no streaming, no SSE, no message broker.
  Subscriptions are managed through the Public API (POST /webhook), one subscription per event type.
transport: https-webhook
subscription:
  managed_via_api: true
  create: {operationId: webhookSetup, method: post, path: /webhook}
  list: {operationId: webhookSetup-51ac71f1-e1da-425d-afa2-d527e716b7e6, method: get, path: /webhooks}
  update: {operationId: webhookSetup-c050afb6-e424-4a49-81a7-839386c17724, method: put, path: '/webhook/{webhookId}'}
  delete: {operationId: webhookSetup-223f3d34-faeb-4c70-91df-a08a2baa2141, method: delete, path: '/webhook/{webhookId}'}
  one_event_per_subscription: true
  note: >-
    CreateWebhookRequest takes a single `event` string (enum), not an array — N event types require
    N subscriptions.
envelope:
  media_type: application/json
  shape: '{ "event": string, "data": object }'
  fields:
  - {field: event, type: string, description: The type of event that triggered the webhook}
  - {field: data, type: object, description: Event-specific payload}
delivery:
  endpoint_requirements: HTTPS and publicly accessible
  timeout: 30 seconds (documented as the endpoint response budget)
  signature_header: null
  signature_note: >-
    micro1 documents no webhook signing secret, signature header, or timestamp header. Receivers
    cannot cryptographically verify origin from the published contract.
  delivery_id_header: null
  retry_policy: >-
    Not published. The docs note that slow endpoints "may cause retries or failures" but no backoff
    schedule, retry count, or replay endpoint is documented.
  ordering: not guaranteed / not documented
  idempotency_guidance: >-
    Dedupe on payload identifiers — report_id for report/recording/proctoring events,
    micro1_job_application_id for applicant events, interview_id + candidate_id for interview.started.
events:
- name: interview.started
  category: interview
  description: An interview is started by the candidate.
  payload_fields: [candidate_id, candidate_name, candidate_email_id, job_id, job_name, ats_job_id,
    ats_job_application_id, interview_id, interview_name, date_started]
- name: interview_report.created
  category: interview
  description: An interview report is successfully generated after the candidate completes the interview.
  latency: 2-5 minutes after interview completion (documented)
  payload_fields: [report_id, interview_id, session_id, interview_name, candidate_id,
    job_applicant_id, ats_job_application_id, ats_job_id, candidate_name, candidate_email_id,
    report_date, report_url, interview_recording_url, proctoring_score, ai_match_score,
    proctoring_violations, interview_transcript, technical_skills_evaluation,
    soft_skills_evaluation, coding_skills_evaluation, custom_exercise_evaluation,
    custom_question_evaluation, date_created, date_modified, status]
- name: interview_recording.completed
  category: recording
  description: The interview recording is processed and available.
  payload_fields: [report_id, candidate_id, interview_recording_url, interview_recording_player_url]
- name: interview.completed
  category: interview
  description: An interview is completed.
  alias_of: interview_recording.completed
  note: Documented as the same trigger as interview_recording.completed — subscribe to one, not both.
- name: interview_webcam_recording.completed
  category: recording
  description: The interview webcam recording is processed and available.
  payload_fields: [report_id, candidate_id, interview_webcam_recording_url,
    interview_webcam_recording_player_url]
- name: proctoring_score.completed
  category: proctoring
  description: The proctoring score is calculated for a completed interview.
  payload_fields: [report_id, candidate_id, proctoring_score]
- name: applicant.created
  category: applicant
  description: A new job applicant is created.
  payload_fields: [resume_score, ats_job_application_id, ats_job_id, micro1_job_id, email_id,
    micro1_job_application_id, candidate_id, candidate_name, job_name, stage, date_created,
    date_modified, resume_url]
- name: applicant.invited
  category: applicant
  description: An applicant is invited to an interview.
  payload_fields: [resume_score, ats_job_application_id, ats_job_id, micro1_job_id, email_id,
    micro1_job_application_id, candidate_id, candidate_name, job_name, stage, date_created,
    date_modified, resume_url]
- name: applicant.updated
  category: applicant
  description: An applicant record is updated.
  payload_fields: [resume_score, ats_job_application_id, ats_job_id, micro1_job_id, email_id,
    micro1_job_application_id, candidate_id, candidate_name, job_name, stage, date_created,
    date_modified, resume_url]
- name: applicant.completed
  category: applicant
  description: An applicant's resume is processed and the resume score is generated.
  payload_fields: [resume_score, ats_job_application_id, ats_job_id, micro1_job_id, email_id,
    micro1_job_application_id, candidate_id, candidate_name, job_name, stage, date_created,
    date_modified, resume_url]
docs:
  introduction: https://ai-recruiter.micro1.ai/api-reference/getting-started/webhooks/introductions
  event_types: https://ai-recruiter.micro1.ai/api-reference/getting-started/webhooks/examples
summary:
  events: 10
  distinct_triggers: 9
  categories: [interview, recording, proctoring, applicant]
  signed: false