diff --git a/docs/docs.json b/docs/docs.json
index 4f9a0ee0a..fe76dde16 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -282,6 +282,7 @@
{
"group": "Features",
"pages": [
+ "en/enterprise/features/rbac",
"en/enterprise/features/tool-repository",
"en/enterprise/features/webhook-streaming",
"en/enterprise/features/traces",
@@ -345,7 +346,7 @@
},
{
"group": "Endpoints",
- "openapi": "enterprise-api.yaml"
+ "openapi": "enterprise-api.en.yaml"
}
]
},
@@ -354,7 +355,7 @@
"groups": [
{
"group": "Examples",
- "pages": ["en/examples/example"]
+ "pages": ["en/examples/example", "en/examples/cookbooks"]
}
]
}
@@ -684,7 +685,7 @@
},
{
"group": "Endpoints",
- "openapi": "enterprise-api.yaml"
+ "openapi": "enterprise-api.pt-BR.yaml"
}
]
},
@@ -1030,7 +1031,7 @@
},
{
"group": "Endpoints",
- "openapi": "enterprise-api.yaml"
+ "openapi": "enterprise-api.ko.yaml"
}
]
},
diff --git a/docs/en/enterprise/features/rbac.mdx b/docs/en/enterprise/features/rbac.mdx
new file mode 100644
index 000000000..52ff41e5a
--- /dev/null
+++ b/docs/en/enterprise/features/rbac.mdx
@@ -0,0 +1,103 @@
+---
+title: "Role-Based Access Control (RBAC)"
+description: "Control access to crews, tools, and data with roles, scopes, and granular permissions."
+icon: "shield"
+---
+
+## Overview
+
+RBAC in CrewAI Enterprise enables secure, scalable access management through a combination of organization‑level roles and automation‑level visibility controls.
+
+
+
+
+
+
+## Users and Roles
+
+Each member in your CrewAI workspace is assigned a role, which determines their access across various features.
+
+You can:
+
+- Use predefined roles (Owner, Member)
+- Create custom roles tailored to specific permissions
+- Assign roles at any time through the settings panel
+
+You can configure users and roles in Settings → Roles.
+
+
+
+ Go to Settings → Roles in CrewAI Enterprise.
+
+
+ Use a predefined role (Owner, Member) or click Create role to define a custom one.
+
+
+ Select users and assign the role. You can change this anytime.
+
+
+
+### Configuration summary
+
+| Area | Where to configure | Options |
+|:---|:---|:---|
+| Users & Roles | Settings → Roles | Predefined: Owner, Member; Custom roles |
+| Automation visibility | Automation → Settings → Visibility | Private; Whitelist users/roles |
+
+## Automation‑level Access Control
+
+In addition to organization‑wide roles, CrewAI Automations support fine‑grained visibility settings that let you restrict access to specific automations by user or role.
+
+This is useful for:
+
+- Keeping sensitive or experimental automations private
+- Managing visibility across large teams or external collaborators
+- Testing automations in isolated contexts
+
+Deployments can be configured as private, meaning only whitelisted users and roles will be able to:
+
+- View the deployment
+- Run it or interact with its API
+- Access its logs, metrics, and settings
+
+The organization owner always has access, regardless of visibility settings.
+
+You can configure automation‑level access control in Automation → Settings → Visibility tab.
+
+
+
+ Navigate to Automation → Settings → Visibility.
+
+
+ Choose Private to restrict access. The organization owner always retains access.
+
+
+ Add specific users and roles allowed to view, run, and access logs/metrics/settings.
+
+
+ Save changes, then confirm that non‑whitelisted users cannot view or run the automation.
+
+
+
+### Private visibility: access outcomes
+
+| Action | Owner | Whitelisted user/role | Not whitelisted |
+|:---|:---|:---|:---|
+| View automation | ✓ | ✓ | ✗ |
+| Run automation/API | ✓ | ✓ | ✗ |
+| Access logs/metrics/settings | ✓ | ✓ | ✗ |
+
+
+The organization owner always has access. In private mode, only whitelisted users and roles can view, run, and access logs/metrics/settings.
+
+
+
+
+
+
+
+
+ Contact our support team for assistance with RBAC questions.
+
+
+
diff --git a/docs/en/examples/cookbooks.mdx b/docs/en/examples/cookbooks.mdx
new file mode 100644
index 000000000..b19ad7eb9
--- /dev/null
+++ b/docs/en/examples/cookbooks.mdx
@@ -0,0 +1,22 @@
+---
+title: CrewAI Cookbooks
+description: Feature-focused quickstarts and notebooks for learning patterns fast.
+icon: book
+---
+
+## Quickstarts & Demos
+
+
+
+ Interactive notebooks for hands-on exploration.
+
+
+ Feature demos and small projects showcasing specific CrewAI capabilities.
+
+
+
+
+Use Cookbooks to learn a pattern quickly, then jump to Full Examples for production‑grade implementations.
+
+
+
diff --git a/docs/en/examples/example.mdx b/docs/en/examples/example.mdx
index f92da4a2c..cfd4535d4 100644
--- a/docs/en/examples/example.mdx
+++ b/docs/en/examples/example.mdx
@@ -1,62 +1,85 @@
---
title: CrewAI Examples
-description: A collection of examples that show how to use CrewAI framework to automate workflows.
+description: Explore curated examples organized by Crews, Flows, Integrations, and Notebooks.
icon: rocket-launch
---
+## Crews
+
-
- Automate marketing strategy creation with CrewAI.
+
+ Multi‑agent marketing campaign planning.
+
+
+ Personalized surprise travel planning.
+
+
+ CV‑to‑job matching with vector search.
+
+
+ Automated job description creation.
+
+
+ Multi‑agent team that designs and builds Python games.
+
+
+ Candidate sourcing and evaluation.
+
+
+ See the full list of crew examples.
+
+
+
+## Flows
+
+
+
+ Multi‑crew content generation with routing.
+
+
+ Automated email monitoring and replies.
+
+
+ Lead qualification with human‑in‑the‑loop.
+
+
+ Notes processing with integrations.
+
+
+ Iterative self‑improvement workflows.
+
+
+ Parallel chapter generation.
+
+
+ See the full list of flow examples.
+
+
+
+## Integrations
+
+
+
+ Integration with LangGraph framework.
+
+
+ Using CrewAI with Azure OpenAI.
+
+
+ NVIDIA ecosystem integrations.
+
+
+ See all integration examples.
+
+
+
+## Notebooks
+
+
+
+ Simple QA Crew + Flow.
+
+
+ Interactive examples for learning and experimentation.
-
- Create a surprise trip itinerary with CrewAI.
-
-
- Match a profile to jobpositions with CrewAI.
-
-
- Create a job posting with CrewAI.
-
-
- Create a game with CrewAI.
-
-
- Find job candidates with CrewAI.
-
diff --git a/docs/enterprise-api.yaml b/docs/enterprise-api.base.yaml
similarity index 100%
rename from docs/enterprise-api.yaml
rename to docs/enterprise-api.base.yaml
diff --git a/docs/enterprise-api.en.yaml b/docs/enterprise-api.en.yaml
new file mode 100644
index 000000000..645601eae
--- /dev/null
+++ b/docs/enterprise-api.en.yaml
@@ -0,0 +1,435 @@
+openapi: 3.0.3
+info:
+ title: CrewAI Enterprise API
+ description: |
+ REST API for interacting with your deployed CrewAI crews on CrewAI Enterprise.
+
+ ## Getting Started
+
+ 1. **Find your crew URL**: Get your unique crew URL from the CrewAI Enterprise dashboard
+ 2. **Copy examples**: Use the code examples from each endpoint page as templates
+ 3. **Replace placeholders**: Update URLs and tokens with your actual values
+ 4. **Test with your tools**: Use cURL, Postman, or your preferred API client
+
+ ## Authentication
+
+ All API requests require a bearer token for authentication. There are two types of tokens:
+
+ - **Bearer Token**: Organization-level token for full crew operations
+ - **User Bearer Token**: User-scoped token for individual access with limited permissions
+
+ You can find your bearer tokens in the Status tab of your crew's detail page in the CrewAI Enterprise dashboard.
+
+ ## Reference Documentation
+
+ This documentation provides comprehensive examples for each endpoint:
+
+ - **Request formats** with all required and optional parameters
+ - **Response examples** for success and error scenarios
+ - **Code samples** in multiple programming languages
+ - **Authentication patterns** with proper Bearer token usage
+
+ Copy the examples and customize them with your actual crew URL and authentication tokens.
+
+ ## Workflow
+
+ 1. **Discover inputs** using `GET /inputs`
+ 2. **Start execution** using `POST /kickoff`
+ 3. **Monitor progress** using `GET /status/{kickoff_id}`
+ version: 1.0.0
+ contact:
+ name: CrewAI Support
+ email: support@crewai.com
+ url: https://crewai.com
+servers:
+ - url: https://your-actual-crew-name.crewai.com
+ description: Replace with your actual deployed crew URL from the CrewAI Enterprise dashboard
+ - url: https://my-travel-crew.crewai.com
+ description: Example travel planning crew (replace with your URL)
+ - url: https://content-creation-crew.crewai.com
+ description: Example content creation crew (replace with your URL)
+ - url: https://research-assistant-crew.crewai.com
+ description: Example research assistant crew (replace with your URL)
+security:
+ - BearerAuth: []
+paths:
+ /inputs:
+ get:
+ summary: Get Required Inputs
+ description: |
+ **📋 Reference Example Only** - *This shows the request format. To test with your actual crew, copy the cURL example and replace the URL + token with your real values.*
+
+ Retrieves the list of all required input parameters that your crew expects for execution.
+ Use this endpoint to discover what inputs you need to provide when starting a crew execution.
+ operationId: getRequiredInputs
+ responses:
+ '200':
+ description: Successfully retrieved required inputs
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ inputs:
+ type: array
+ items:
+ type: string
+ description: Array of required input parameter names
+ example: ["budget", "interests", "duration", "age"]
+ examples:
+ travel_crew:
+ summary: Travel planning crew inputs
+ value:
+ inputs: ["budget", "interests", "duration", "age"]
+ outreach_crew:
+ summary: Outreach crew inputs
+ value:
+ inputs: ["name", "title", "company", "industry", "our_product", "linkedin_url"]
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+ /kickoff:
+ post:
+ summary: Start Crew Execution
+ description: |
+ **📋 Reference Example Only** - *This shows the request format. To test with your actual crew, copy the cURL example and replace the URL + token with your real values.*
+
+ Initiates a new crew execution with the provided inputs. Returns a kickoff ID that can be used
+ to track the execution progress and retrieve results.
+
+ Crew executions can take anywhere from seconds to minutes depending on their complexity.
+ Consider using webhooks for real-time notifications or implement polling with the status endpoint.
+ operationId: startCrewExecution
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - inputs
+ properties:
+ inputs:
+ type: object
+ description: Key-value pairs of all required inputs for your crew
+ additionalProperties:
+ type: string
+ example:
+ budget: "1000 USD"
+ interests: "games, tech, ai, relaxing hikes, amazing food"
+ duration: "7 days"
+ age: "35"
+ meta:
+ type: object
+ description: Additional metadata to pass to the crew
+ additionalProperties: true
+ example:
+ requestId: "user-request-12345"
+ source: "mobile-app"
+ taskWebhookUrl:
+ type: string
+ format: uri
+ description: Callback URL executed after each task completion
+ example: "https://your-server.com/webhooks/task"
+ stepWebhookUrl:
+ type: string
+ format: uri
+ description: Callback URL executed after each agent thought/action
+ example: "https://your-server.com/webhooks/step"
+ crewWebhookUrl:
+ type: string
+ format: uri
+ description: Callback URL executed when the crew execution completes
+ example: "https://your-server.com/webhooks/crew"
+ examples:
+ travel_planning:
+ summary: Travel planning crew
+ value:
+ inputs:
+ budget: "1000 USD"
+ interests: "games, tech, ai, relaxing hikes, amazing food"
+ duration: "7 days"
+ age: "35"
+ meta:
+ requestId: "travel-req-123"
+ source: "web-app"
+ outreach_campaign:
+ summary: Outreach crew with webhooks
+ value:
+ inputs:
+ name: "John Smith"
+ title: "CTO"
+ company: "TechCorp"
+ industry: "Software"
+ our_product: "AI Development Platform"
+ linkedin_url: "https://linkedin.com/in/johnsmith"
+ taskWebhookUrl: "https://api.example.com/webhooks/task"
+ crewWebhookUrl: "https://api.example.com/webhooks/crew"
+ responses:
+ '200':
+ description: Crew execution started successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ kickoff_id:
+ type: string
+ format: uuid
+ description: Unique identifier for tracking this execution
+ example: "abcd1234-5678-90ef-ghij-klmnopqrstuv"
+ '400':
+ description: Invalid request body or missing required inputs
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '422':
+ description: Validation error - ensure all required inputs are provided
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ValidationError'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+ /status/{kickoff_id}:
+ get:
+ summary: Get Execution Status
+ description: |
+ **📋 Reference Example Only** - *This shows the request format. To test with your actual crew, copy the cURL example and replace the URL + token with your real values.*
+
+ Retrieves the current status and results of a crew execution using its kickoff ID.
+
+ The response structure varies depending on the execution state:
+ - **running**: Execution in progress with current task info
+ - **completed**: Execution finished with full results
+ - **error**: Execution failed with error details
+ operationId: getExecutionStatus
+ parameters:
+ - name: kickoff_id
+ in: path
+ required: true
+ description: The kickoff ID returned from the /kickoff endpoint
+ schema:
+ type: string
+ format: uuid
+ example: "abcd1234-5678-90ef-ghij-klmnopqrstuv"
+ responses:
+ '200':
+ description: Successfully retrieved execution status
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/ExecutionRunning'
+ - $ref: '#/components/schemas/ExecutionCompleted'
+ - $ref: '#/components/schemas/ExecutionError'
+ examples:
+ running:
+ summary: Execution in progress
+ value:
+ status: "running"
+ current_task: "research_task"
+ progress:
+ completed_tasks: 1
+ total_tasks: 3
+ completed:
+ summary: Execution completed successfully
+ value:
+ status: "completed"
+ result:
+ output: "Comprehensive travel itinerary for 7 days in Japan focusing on tech culture..."
+ tasks:
+ - task_id: "research_task"
+ output: "Research findings on tech destinations in Japan..."
+ agent: "Travel Researcher"
+ execution_time: 45.2
+ - task_id: "planning_task"
+ output: "7-day detailed itinerary with activities and recommendations..."
+ agent: "Trip Planner"
+ execution_time: 62.8
+ execution_time: 108.5
+ error:
+ summary: Execution failed
+ value:
+ status: "error"
+ error: "Task execution failed: Invalid API key for external service"
+ execution_time: 23.1
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '404':
+ description: Kickoff ID not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ example:
+ error: "Execution not found"
+ message: "No execution found with ID: abcd1234-5678-90ef-ghij-klmnopqrstuv"
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+components:
+ securitySchemes:
+ BearerAuth:
+ type: http
+ scheme: bearer
+ description: |
+ **📋 Reference Documentation** - *The tokens shown in examples are placeholders for reference only.*
+
+ Use your actual Bearer Token or User Bearer Token from the CrewAI Enterprise dashboard for real API calls.
+
+ **Bearer Token**: Organization-level access for full crew operations
+ **User Bearer Token**: User-scoped access with limited permissions
+
+ schemas:
+ ExecutionRunning:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["running"]
+ example: "running"
+ current_task:
+ type: string
+ description: Name of the currently executing task
+ example: "research_task"
+ progress:
+ type: object
+ properties:
+ completed_tasks:
+ type: integer
+ description: Number of completed tasks
+ example: 1
+ total_tasks:
+ type: integer
+ description: Total number of tasks in the crew
+ example: 3
+
+ ExecutionCompleted:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["completed"]
+ example: "completed"
+ result:
+ type: object
+ properties:
+ output:
+ type: string
+ description: Final output from the crew execution
+ example: "Comprehensive travel itinerary..."
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskResult'
+ execution_time:
+ type: number
+ description: Total execution time in seconds
+ example: 108.5
+
+ ExecutionError:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["error"]
+ example: "error"
+ error:
+ type: string
+ description: Error message describing what went wrong
+ example: "Task execution failed: Invalid API key"
+ execution_time:
+ type: number
+ description: Time until error occurred in seconds
+ example: 23.1
+
+ TaskResult:
+ type: object
+ properties:
+ task_id:
+ type: string
+ description: Unique identifier for the task
+ example: "research_task"
+ output:
+ type: string
+ description: Output generated by this task
+ example: "Research findings..."
+ agent:
+ type: string
+ description: Name of the agent that executed this task
+ example: "Travel Researcher"
+ execution_time:
+ type: number
+ description: Time taken to execute this task in seconds
+ example: 45.2
+
+ Error:
+ type: object
+ properties:
+ error:
+ type: string
+ description: Error type or title
+ example: "Authentication Error"
+ message:
+ type: string
+ description: Detailed error message
+ example: "Invalid bearer token provided"
+
+ ValidationError:
+ type: object
+ properties:
+ error:
+ type: string
+ example: "Validation Error"
+ message:
+ type: string
+ example: "Missing required inputs"
+ details:
+ type: object
+ properties:
+ missing_inputs:
+ type: array
+ items:
+ type: string
+ example: ["budget", "interests"]
+
+ responses:
+ UnauthorizedError:
+ description: Authentication failed - check your bearer token
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ example:
+ error: "Unauthorized"
+ message: "Invalid or missing bearer token"
+
+ NotFoundError:
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ example:
+ error: "Not Found"
+ message: "The requested resource was not found"
+
+ ServerError:
+ description: Internal server error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ example:
+ error: "Internal Server Error"
+ message: "An unexpected error occurred"
+
diff --git a/docs/enterprise-api.ko.yaml b/docs/enterprise-api.ko.yaml
new file mode 100644
index 000000000..da0b6c23f
--- /dev/null
+++ b/docs/enterprise-api.ko.yaml
@@ -0,0 +1,231 @@
+openapi: 3.0.3
+info:
+ title: CrewAI 엔터프라이즈 API
+ description: |
+ CrewAI Enterprise에 배포된 crew와 상호작용하기 위한 REST API입니다.
+
+ ## 시작하기
+ 1. **Crew URL 확인**: 대시보드에서 고유한 crew URL을 확인하세요
+ 2. **예제 복사**: 각 엔드포인트의 예제를 템플릿으로 사용하세요
+ 3. **플레이스홀더 교체**: 실제 URL과 토큰으로 바꾸세요
+ 4. **도구로 테스트**: cURL, Postman 등 선호하는 도구로 테스트하세요
+ version: 1.0.0
+ contact:
+ name: CrewAI 지원
+ email: support@crewai.com
+ url: https://crewai.com
+servers:
+ - url: https://your-actual-crew-name.crewai.com
+ description: 대시보드의 실제 crew URL로 교체하세요
+security:
+ - BearerAuth: []
+paths:
+ /inputs:
+ get:
+ summary: 필요 입력값 조회
+ description: |
+ **📋 참조 예제만 제공** - *요청 형식을 보여줍니다. 실제 호출은 cURL 예제를 복사해 URL과 토큰을 교체하세요.*
+
+ 실행에 필요한 입력 파라미터 목록을 반환합니다.
+ operationId: getRequiredInputs
+ responses:
+ '200':
+ description: 입력값을 성공적으로 조회
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ inputs:
+ type: array
+ items:
+ type: string
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+ /kickoff:
+ post:
+ summary: Crew 실행 시작
+ description: |
+ **📋 참조 예제만 제공** - *요청 형식을 보여줍니다. 실제 호출은 cURL 예제를 복사해 URL과 토큰을 교체하세요.*
+
+ 제공된 입력으로 새로운 실행을 시작하고 kickoff ID를 반환합니다.
+ operationId: startCrewExecution
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - inputs
+ properties:
+ inputs:
+ type: object
+ additionalProperties:
+ type: string
+ responses:
+ '200':
+ description: 실행이 성공적으로 시작됨
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ kickoff_id:
+ type: string
+ format: uuid
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+ /status/{kickoff_id}:
+ get:
+ summary: 실행 상태 조회
+ description: |
+ **📋 참조 예제만 제공** - *요청 형식을 보여줍니다. 실제 호출은 cURL 예제를 복사해 URL과 토큰을 교체하세요.*
+
+ kickoff ID로 실행 상태와 결과를 조회합니다.
+ operationId: getExecutionStatus
+ parameters:
+ - name: kickoff_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ responses:
+ '200':
+ description: 상태를 성공적으로 조회
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/ExecutionRunning'
+ - $ref: '#/components/schemas/ExecutionCompleted'
+ - $ref: '#/components/schemas/ExecutionError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '404':
+ description: Kickoff ID를 찾을 수 없음
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+components:
+ securitySchemes:
+ BearerAuth:
+ type: http
+ scheme: bearer
+ description: |
+ **📋 참고** - *예시의 토큰은 자리 표시자입니다.* 실제 토큰을 사용하세요.
+
+ schemas:
+ ExecutionRunning:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["running"]
+ current_task:
+ type: string
+ progress:
+ type: object
+ properties:
+ completed_tasks:
+ type: integer
+ total_tasks:
+ type: integer
+
+ ExecutionCompleted:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["completed"]
+ result:
+ type: object
+ properties:
+ output:
+ type: string
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskResult'
+ execution_time:
+ type: number
+
+ ExecutionError:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["error"]
+ error:
+ type: string
+ execution_time:
+ type: number
+
+ TaskResult:
+ type: object
+ properties:
+ task_id:
+ type: string
+ output:
+ type: string
+ agent:
+ type: string
+ execution_time:
+ type: number
+
+ Error:
+ type: object
+ properties:
+ error:
+ type: string
+ message:
+ type: string
+
+ ValidationError:
+ type: object
+ properties:
+ error:
+ type: string
+ message:
+ type: string
+ details:
+ type: object
+ properties:
+ missing_inputs:
+ type: array
+ items:
+ type: string
+
+ responses:
+ UnauthorizedError:
+ description: 인증 실패
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NotFoundError:
+ description: 리소스를 찾을 수 없음
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ ServerError:
+ description: 서버 내부 오류
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
diff --git a/docs/enterprise-api.pt-BR.yaml b/docs/enterprise-api.pt-BR.yaml
new file mode 100644
index 000000000..77c9e4644
--- /dev/null
+++ b/docs/enterprise-api.pt-BR.yaml
@@ -0,0 +1,268 @@
+openapi: 3.0.3
+info:
+ title: CrewAI Enterprise API
+ description: |
+ REST API para interagir com suas crews implantadas no CrewAI Enterprise.
+
+ ## Introdução
+
+ 1. **Encontre a URL da sua crew**: Obtenha sua URL única no painel do CrewAI Enterprise
+ 2. **Copie os exemplos**: Use os exemplos de cada endpoint como modelo
+ 3. **Substitua os placeholders**: Atualize URLs e tokens com seus valores reais
+ 4. **Teste com suas ferramentas**: Use cURL, Postman ou seu cliente preferido
+
+ ## Autenticação
+
+ Todas as requisições exigem um token bearer. Existem dois tipos:
+
+ - **Bearer Token**: Token em nível de organização para operações completas
+ - **User Bearer Token**: Token com escopo de usuário com permissões limitadas
+
+ Você encontra os tokens na aba Status da sua crew no painel do CrewAI Enterprise.
+
+ ## Documentação de Referência
+
+ Este documento fornece exemplos completos para cada endpoint:
+
+ - **Formatos de requisição** com parâmetros obrigatórios e opcionais
+ - **Exemplos de resposta** para sucesso e erro
+ - **Amostras de código** em várias linguagens
+ - **Padrões de autenticação** com uso correto de Bearer token
+
+ Copie os exemplos e personalize com sua URL e tokens reais.
+
+ ## Fluxo
+
+ 1. **Descubra os inputs** usando `GET /inputs`
+ 2. **Inicie a execução** usando `POST /kickoff`
+ 3. **Monitore o progresso** usando `GET /status/{kickoff_id}`
+ version: 1.0.0
+ contact:
+ name: CrewAI Suporte
+ email: support@crewai.com
+ url: https://crewai.com
+servers:
+ - url: https://your-actual-crew-name.crewai.com
+ description: Substitua pela URL real da sua crew no painel do CrewAI Enterprise
+security:
+ - BearerAuth: []
+paths:
+ /inputs:
+ get:
+ summary: Obter Inputs Requeridos
+ description: |
+ **📋 Exemplo de Referência** - *Mostra o formato da requisição. Para testar com sua crew real, copie o cURL e substitua URL + token.*
+
+ Retorna a lista de parâmetros de entrada que sua crew espera.
+ operationId: getRequiredInputs
+ responses:
+ '200':
+ description: Inputs requeridos obtidos com sucesso
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ inputs:
+ type: array
+ items:
+ type: string
+ description: Nomes dos parâmetros de entrada
+ example: ["budget", "interests", "duration", "age"]
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+ /kickoff:
+ post:
+ summary: Iniciar Execução da Crew
+ description: |
+ **📋 Exemplo de Referência** - *Mostra o formato da requisição. Para testar com sua crew real, copie o cURL e substitua URL + token.*
+
+ Inicia uma nova execução da crew com os inputs fornecidos e retorna um kickoff ID.
+ operationId: startCrewExecution
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - inputs
+ properties:
+ inputs:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ budget: "1000 USD"
+ interests: "games, tech, ai, relaxing hikes, amazing food"
+ duration: "7 days"
+ age: "35"
+
+ responses:
+ '200':
+ description: Execução iniciada com sucesso
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ kickoff_id:
+ type: string
+ format: uuid
+ example: "abcd1234-5678-90ef-ghij-klmnopqrstuv"
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+ /status/{kickoff_id}:
+ get:
+ summary: Obter Status da Execução
+ description: |
+ **📋 Exemplo de Referência** - *Mostra o formato da requisição. Para testar com sua crew real, copie o cURL e substitua URL + token.*
+
+ Retorna o status atual e os resultados de uma execução usando o kickoff ID.
+ operationId: getExecutionStatus
+ parameters:
+ - name: kickoff_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ responses:
+ '200':
+ description: Status recuperado com sucesso
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: '#/components/schemas/ExecutionRunning'
+ - $ref: '#/components/schemas/ExecutionCompleted'
+ - $ref: '#/components/schemas/ExecutionError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '404':
+ description: Kickoff ID não encontrado
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ $ref: '#/components/responses/ServerError'
+
+components:
+ securitySchemes:
+ BearerAuth:
+ type: http
+ scheme: bearer
+ description: |
+ **📋 Referência** - *Os tokens mostrados são apenas exemplos.*
+ Use seus tokens reais do painel do CrewAI Enterprise.
+
+ schemas:
+ ExecutionRunning:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["running"]
+ current_task:
+ type: string
+ progress:
+ type: object
+ properties:
+ completed_tasks:
+ type: integer
+ total_tasks:
+ type: integer
+
+ ExecutionCompleted:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["completed"]
+ result:
+ type: object
+ properties:
+ output:
+ type: string
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskResult'
+ execution_time:
+ type: number
+
+ ExecutionError:
+ type: object
+ properties:
+ status:
+ type: string
+ enum: ["error"]
+ error:
+ type: string
+ execution_time:
+ type: number
+
+ TaskResult:
+ type: object
+ properties:
+ task_id:
+ type: string
+ output:
+ type: string
+ agent:
+ type: string
+ execution_time:
+ type: number
+
+ Error:
+ type: object
+ properties:
+ error:
+ type: string
+ message:
+ type: string
+
+ ValidationError:
+ type: object
+ properties:
+ error:
+ type: string
+ message:
+ type: string
+ details:
+ type: object
+ properties:
+ missing_inputs:
+ type: array
+ items:
+ type: string
+
+ responses:
+ UnauthorizedError:
+ description: Autenticação falhou
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NotFoundError:
+ description: Recurso não encontrado
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ ServerError:
+ description: Erro interno do servidor
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
diff --git a/docs/images/enterprise/users_and_roles.png b/docs/images/enterprise/users_and_roles.png
new file mode 100644
index 000000000..d1aeadc6d
Binary files /dev/null and b/docs/images/enterprise/users_and_roles.png differ
diff --git a/docs/images/enterprise/visibility.png b/docs/images/enterprise/visibility.png
new file mode 100644
index 000000000..74c8078d4
Binary files /dev/null and b/docs/images/enterprise/visibility.png differ