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

# Create an Agent (Project-owned or ExternalUser-owned)

> Which kind of Agent gets created depends on the credential's asserted identity: a bare Project credential creates a Project-owned Agent; pairing it with x-persona-external-user-id creates an Agent owned by that external user.




## OpenAPI

````yaml /openapi.json post /api/v1/developer/agents
openapi: 3.0.0
info:
  title: Persona.ai Developer Platform API
  version: 1.0.0
  description: >-
    REST + AG-UI API for integrating your product with Persona's agent
    infrastructure.


    Every endpoint here is a server-to-server call — see the Integration Guide
    for where in your own stack to call each one from, and how the same endpoint
    serves both Project-level and per-end-user requests via the
    `x-persona-external-user-id` header.
servers:
  - url: https://api.personaai.com
    description: Production
security: []
tags: []
paths:
  /api/v1/developer/agents:
    post:
      tags:
        - Developer
      summary: Create an Agent (Project-owned or ExternalUser-owned)
      description: >
        Which kind of Agent gets created depends on the credential's asserted
        identity: a bare Project credential creates a Project-owned Agent;
        pairing it with x-persona-external-user-id creates an Agent owned by
        that external user.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - systemPrompt
                - providerId
      responses:
        '201':
          description: Agent created
        '400':
          description: Validation error, or invalid Provider
      security:
        - projectCredential: []
components:
  securitySchemes:
    projectCredential:
      type: http
      scheme: bearer
      bearerFormat: <keyId>.<secret>
      description: >-
        Developer Platform Project credential, minted via POST
        /api/v1/projects/{projectId}/credentials. Send as `Authorization: Bearer
        <keyId>.<secret>`. Optionally pair with the `x-persona-external-user-id`
        header to act on behalf of one of the Project's own external users. This
        credential is a server-side secret — see the Integration Guide.

````