---
title: "Hire Expert"
method: POST
path: "/api/experts"
tags: ["v2", "experts", "experts", "private"]
---

# Hire Expert

`POST /api/experts`

## Request body

- HireRequest
  - `template_id` string, required
  - `name` string, nullable

## Response `200`

Successful Response

- HireResult
  - `expert` Expert, required
    - `id` string, required
    - `name` string, required
    - `avatar_url` string, nullable, required
    - `color` string
    - `role` string, required
    - `job_title` string, nullable
    - `tagline` string, nullable, required
    - `bio` string, nullable, required
    - `skills` string[], required
    - `categories` string[]
    - `identity` string, required
    - `voice_preferences` string, required
    - `voice_samples` VoiceSample[]
      - `label` string, required
      - `text` string, required
    - `day_one` ExpertDayOneItem[]
      - `title` string, required
      - `description` string
      - `timing` string
    - `boundaries` string, required
    - `protected_soul_rules` string[], required
    - `is_template` boolean, required
    - `source_template_id` string, nullable, required
    - `is_archived` boolean, required
    - `workflows` ExpertWorkflowRef[], required
      - `id` string, required
      - `store_listing_version_id` string, nullable, required
      - `library_agent_id` string, nullable, required
      - `graph_id` string, nullable, required
      - `name` string, nullable, required
      - `description` string, nullable, required
      - `schedule_cron` string, nullable
      - `schedule_id` string, nullable
      - `chain` ExpertWorkflowChainItem[]
        - `kind` 'integration' | 'input' | 'output' | 'trigger' | 'agent' | 'ai' | 'mcp' | 'human', required
        - `provider` string, nullable
      - `integration_providers` string[]
    - `credential_count` integer
    - `credential_providers` string[]
    - `last_run_at` string, date-time, nullable
    - `last_run_status` string, nullable
    - `weekly_budget` integer, nullable
    - `weekly_spend` integer
    - `schedules_paused_at` string, date-time, nullable
    - `pod_id` string, nullable
    - `setup_status` 'installing' | 'ready' | 'failed'
    - `setup_failures` string[]

## Other responses

- `401` — Authentication required
- `404` — Expert or expert template not found
- `409` — Active expert limit reached
- `422` — Validation Error
- `503` — Expert workspace unavailable

## Changes

- **2026-09-24** `c2d001a63ddd` — 1 breaking, 2 info
  - removed the required property `failed_preloads` from the response with the `200` status
  - added the optional property `expert/setup_failures` to the response with the `200` status
  - added the optional property `expert/setup_status` to the response with the `200` status
- **2026-09-17** `b8df0ac53664` — 1 info
  - added the optional property `expert/job_title` to the response with the `200` status
- **2026-09-11** `505bcf724618` — 1 info
  - added the optional property `expert/categories` to the response with the `200` status
- **2026-09-11** `d0ab5162cf6e` — 1 info
  - added the optional property `expert/day_one` to the response with the `200` status
- **2026-09-11** `55ff31eb7c7f` — 1 info
  - added the optional property `expert/workflows/items/integration_providers` to the response with the `200` status

[Full history](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/changes/api/experts/post.md)

---

[API](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server.md) · [All operations](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/llms.txt) · [OpenAPI document](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/revisions/b84a51b99815?raw)
