# Rafid Voice Appointment API

> Rafid Voice Appointment API is a paid API for AI agents from api.rafidsystem.com, paid per call via x402, $0.5/call, status unknown (last checked 2026-10-10).

Schedules, confirms, reschedules, or cancels voice-call appointments by proposing time slots and managing the booking lifecycle via phone.

## Facts

- Endpoint: POST https://api.rafidsystem.com/api/v1/x402/voice/appointment?utm_source=zero.xyz
- Price: $0.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/rafid-voice-appointment-api-e035eb8d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tR2dqfRBpLW_TBo7ioYgQ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability rafid-voice-appointment-api-e035eb8d -d '<json body>'
```

Example prompt: Book a 10-minute property consultation voice appointment with +971501234567 in the Asia/Dubai timezone for tomorrow at 10am — use English, enable transcription, and let them know the call may be recorded for quality purposes.

## When to prefer this

Use this endpoint when an AI agent needs to manage the full lifecycle of a voice-call appointment — proposing slots, booking, confirming, rescheduling, or cancelling — particularly in business workflows involving property, recruitment, finance, or customer service. It is especially suited when you need built-in safety controls like recording consent and transcription toggling, multilingual support (English and Arabic), and structured calendar output. Prefer this over generic calendar APIs when the appointment must be conducted and confirmed via a phone call rather than a digital-only booking.

## Known failure modes

- Invalid phone number format (must start with + and be 8-15 digits) returns validation error
- No available slots provided for propose/book actions results in scheduling failure
- Unsupported timezone string returns error
- Action enum value not one of propose/book/confirm/reschedule/cancel returns bad request
- Max duration exceeds 3600 seconds returns validation error
- Payment failure (insufficient USDC) blocks the request
- Phone unreachable or no-answer results in failed call status

## How this service works

Rafid Agent API provides structured intelligence and paid APIs for AI agents across property, company and risk, supplier, finance, document, website, automotive, logistics, recruitment, trading, voice, video and business-planning workflows.

## Output

Returns a JSON object with a callId identifying the booking, a status field (e.g. 'confirmed', 'proposed'), the confirmed ISO 8601 datetime slot, any customer notes captured during the interaction, and a calendarEventId if the appointment was added to a calendar system.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "action": {
   "enum": [
    "propose",
    "book",
    "confirm",
    "reschedule",
    "cancel"
   ],
   "type": "string"
  },
  "safety": {
   "type": "object",
   "required": [
    "recording",
    "transcription"
   ],
   "properties": {
    "timezone": {
     "type": "string",
     "maxLength": 100
    },
    "recording": {
     "type": "boolean",
     "default": false
    },
    "consentNotice": {
     "type": "string",
     "maxLength": 500
    },
    "transcription": {
     "type": "boolean",
     "default": false
    }
   },
   "additionalProperties": false
  },
  "context": {
   "type": "object",
   "propertyNames": {
    "type": "string"
   },
   "additionalProperties": {
    "type": "string",
    "maxLength": 500
   }
  },
  "language": {
   "enum": [
    "en",
    "ar"
   ],
   "type": "string"
  },
  "timezone": {
   "type": "string",
   "maxLength": 100,
   "minLength": 1
  },
  "phoneNumber": {
   "type": "string",
   "pattern": "^\\+[1-9]\\d{7,14}$"
  },
  "availableSlots": {
   "type": "array",
   "items": {
    "type": "string",
    "format": "date-time",
    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
   },
   "default": [],
   "maxItems": 20
  },
  "appointmentType": {
   "type": "string",
   "maxLength": 200,
   "minLength": 2
  },
  "maxDurationSeconds": {
   "type": "integer",
   "default": 300,
   "maximum": 3600,
   "minimum": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "callId": "call_example",
  "status": "confirmed",
  "confirmedSlot": "2026-09-28T10:00:00+04:00",
  "customerNotes": null,
  "calendarEventId": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/rafid-voice-appointment-api-e035eb8d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.rafidsystem.com](https://www.zero.xyz/host/api.rafidsystem.com/llms.txt)
