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

# Introduction

> ProductFlo API Documentation

# ProductFlo API

The ProductFlo API is a powerful backend service that powers the ProductFlo platform - an AI-powered engineering platform purpose-built for hardware product development with specialized tools for mechanical, electrical, firmware, and manufacturing.

## API Base URL

| Environment | URL                                 |
| ----------- | ----------------------------------- |
| Production  | `https://api.productflo.io`         |
| Staging     | `https://staging-api.productflo.io` |
| Development | `http://localhost:8000`             |

## Authentication

All API requests must be authenticated using a JSON Web Token (JWT). You can obtain a token by logging in through the `/auth/login` endpoint.

```bash theme={null}
curl -X POST https://api.productflo.io/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "your.email@example.com", "password": "your-password"}'
```

Include the token in subsequent requests:

```bash theme={null}
curl https://api.productflo.io/profile \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
```

## Core Features

The ProductFlo API provides the following core features:

* **Multi-tenancy**: Support for multiple organizations with isolated data
* **Authentication**: Comprehensive authentication and authorization system
* **File Management**: Secure file uploading, downloading, and versioning
* **Real-time Communication**: WebSocket-based real-time updates and chat
* **AI Integration**: Advanced AI capabilities for image generation, CAD, and more
* **Team Collaboration**: User management, teams, and permissions

## Rate Limiting

API requests are rate-limited to ensure fair usage and system stability. The current limits are:

* 60 requests per minute for standard endpoints
* 10 requests per minute for AI generation endpoints
* 20 WebSocket connections per user

## Error Handling

The API uses standard HTTP status codes to indicate the success or failure of requests:

* `2xx`: Success
* `4xx`: Client errors (invalid parameters, authentication issues)
* `5xx`: Server errors

Error responses include a JSON body with details:

```json theme={null}
{
  "detail": "Error message",
  "code": "ERROR_CODE",
  "path": "/endpoint",
  "timestamp": "2023-05-30T12:34:56Z"
}
```

## Versioning

The API is currently on v1, which is the default version. All endpoints are accessed without an explicit version in the URL.

## Getting Help

If you need assistance with the API, please contact support at [support@productflo.io](mailto:support@productflo.io) or join our developer community at [https://community.productflo.io](https://community.productflo.io).
