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

# create

### POST api/v1/ai\_voice/organizations/:organization\_id/appointment\_types

This endpoint creates an appointment type for an organization.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://app.teamcaredental.com/api/v1/ai_voice/organizations/:organization_id/appointment_types" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "appointment_type": {
        "title": "Dental Implant Consult",
        "category": "consultation",
        "provider_id": 123,
        "new_patient_minutes": 60,
        "existing_patient_minutes": 45,
        "buffer_minutes": 60,
        "available_slots_lookup_months": 3
      }
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://app.teamcaredental.com/api/v1/ai_voice/organizations/:organization_id/appointment_types", {
    method: "POST",
    headers: {
      "Authorization": "Bearer YOUR_ACCESS_TOKEN",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "appointment_type": {
        "title": "Dental Implant Consult",
        "category": "consultation",
        "provider_id": 123,
        "new_patient_minutes": 60,
        "existing_patient_minutes": 45,
        "buffer_minutes": 60,
        "available_slots_lookup_months": 3
      }
    })
  })

  const data = await response.json()
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://app.teamcaredental.com/api/v1/ai_voice/organizations/:organization_id/appointment_types",
      headers={"Authorization": "Bearer YOUR_ACCESS_TOKEN"},
      json={
        "appointment_type": {
          "title": "Dental Implant Consult",
          "category": "consultation",
          "provider_id": 123,
          "new_patient_minutes": 60,
          "existing_patient_minutes": 45,
          "buffer_minutes": 60,
          "available_slots_lookup_months": 3
        }
      }
  )

  data = response.json()
  ```

  ```ruby Ruby theme={null}
  require "net/http"
  require "json"

  uri = URI("https://app.teamcaredental.com/api/v1/ai_voice/organizations/:organization_id/appointment_types")
  request = Net::HTTP::Post.new(uri)
  request["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"
  request["Content-Type"] = "application/json"
  request.body = JSON.dump({
    "appointment_type" => {
      "title" => "Dental Implant Consult",
      "category" => "consultation",
      "provider_id" => 123,
      "new_patient_minutes" => 60,
      "existing_patient_minutes" => 45,
      "buffer_minutes" => 60,
      "available_slots_lookup_months" => 3
    }
  })

  response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end

  data = JSON.parse(response.body)
  ```
</CodeGroup>
