openapi: 3.0.0 paths: /: get: operationId: getHello parameters: [] responses: "200": description: "" content: application/json: schema: type: string /users/register: post: operationId: register parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RegisterUserDto" responses: "201": description: "" content: application/json: schema: $ref: "#/components/schemas/UserCreatedResponseDto" "409": description: User already exists, please login. "500": description: Something went wrong. tags: - users /users/login: post: operationId: login parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/LoginUserDto" responses: "201": description: "" content: application/json: schema: $ref: "#/components/schemas/LoginResponseDto" "401": description: The provided credentials are invalid or the user does not have a password configured. "500": description: Something went wrong. tags: - users /projects/create: post: operationId: createProject parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateProjectDto" responses: "201": description: "" content: application/json: schema: $ref: "#/components/schemas/CreatedProjectDto" tags: - projects security: - bearer: [] "/projects/list_for_organization/{organizationId}": get: operationId: listOrganizationProjects parameters: - name: organizationId required: true in: path schema: type: string responses: "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ListProjectsResultDto" tags: - projects security: - bearer: [] "/projects/exists/{slug}": get: operationId: projectExists parameters: - name: slug required: true in: path schema: type: string responses: "200": description: "" content: application/json: schema: $ref: "#/components/schemas/ProjectExistsResponseDto" tags: - projects security: - bearer: [] /agents/create: post: operationId: createAgent parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateAgentDto" responses: "201": description: "" content: application/json: schema: $ref: "#/components/schemas/CreatedAgentDto" "/agents/list_for_project/{projectId}": post: operationId: listForProject parameters: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateAgentDto" responses: "201": description: "" content: application/json: schema: $ref: "#/components/schemas/ListAgentsResponseDto" info: title: AgentLabs API description: Build AI Agents in minutes, not months. version: 1.0.0 contact: {} tags: [] servers: [] components: securitySchemes: bearer: scheme: bearer bearerFormat: JWT type: http schemas: RegisterUserDto: type: object properties: email: type: string password: type: string minLength: 6 fullName: type: string minLength: 2 required: - email - password - fullName UserCreatedResponseDto: type: object properties: id: type: string email: type: string fullName: type: string isVerified: type: boolean hasPassword: type: boolean required: - id - email - fullName - isVerified - hasPassword LoginUserDto: type: object properties: email: type: string password: type: string minLength: 6 required: - email - password SanitizedUserResponseDto: type: object properties: id: type: string email: type: string fullName: type: string isVerified: type: boolean hasPassword: type: boolean required: - id - email - fullName - isVerified - hasPassword LoginResponseDto: type: object properties: accessToken: type: string user: $ref: "#/components/schemas/SanitizedUserResponseDto" required: - accessToken - user CreateProjectDto: type: object properties: name: type: string slug: type: string organizationId: type: string required: - name - slug - organizationId CreatedProjectDto: type: object properties: id: type: string name: type: string slug: type: string organizationId: type: string creatorId: type: string createdAt: format: date-time type: string updatedAt: format: date-time type: string required: - id - name - slug - organizationId - creatorId - createdAt - updatedAt ListProjectItemDto: type: object properties: id: type: string name: type: string slug: type: string organizationId: type: string creatorId: type: string createdAt: format: date-time type: string updatedAt: format: date-time type: string required: - id - name - slug - organizationId - creatorId - createdAt - updatedAt ListProjectsResultDto: type: object properties: items: type: array items: $ref: "#/components/schemas/ListProjectItemDto" total: type: number required: - items - total ProjectExistsResponseDto: type: object properties: exists: type: boolean required: - exists CreateAgentDto: type: object properties: name: type: string projectId: type: string required: - name - projectId CreatedAgentDto: type: object properties: id: type: string name: type: string projectId: type: string creatorId: type: string createdAt: format: date-time type: string updatedAt: format: date-time type: string required: - id - name - projectId - creatorId - createdAt - updatedAt ListAgentItem: type: object properties: id: type: string name: type: string projectId: type: string creatorId: type: string createdAt: format: date-time type: string updatedAt: format: date-time type: string required: - id - name - projectId - creatorId - createdAt - updatedAt ListAgentsResponseDto: type: object properties: items: type: array items: $ref: "#/components/schemas/ListAgentItem" total: type: number required: - items - total