API Endpoints
Complete reference for all currently implemented 200Notes API endpoints. This document provides detailed information about request/response formats, parameters, and examples for each available endpoint.
📋 Implementation Status
✅ Authentication Endpoints: Fully implemented
✅ Project Management: Fully implemented
✅ Team Collaboration: Routes implemented (some methods pending)
🚧 Notes & Tasks: Coming in Phase 2
🚧 AI Features: Coming in Phase 3
Base URL
All API requests should be made to:
https://200notes.com/api/v1
Authentication
All protected endpoints require authentication using Bearer tokens in the format api_key:api_secret:
Authorization: Bearer sk-abc123:xyz789
✅ Authentication Endpoints
User registration, login, and API key management.
Register New Account
POST /auth/register
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | User's full name |
email |
string | Yes | Valid email address |
password |
string | Yes | Password (min 8 characters) |
password_confirmation |
string | Yes | Password confirmation |
Example Request
curl -X POST \
https://200notes.com/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"email": "john@example.com",
"password": "securepassword123",
"password_confirmation": "securepassword123"
}'
Example Response
{
"message": "Registration successful",
"data": {
"user": {
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"created_at": "2024-01-15T10:30:00.000000Z"
},
"api_key": "sk-abc123",
"api_secret": "xyz789"
}
}
Login
POST /auth/login
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | User's email address |
password |
string | Yes | User's password |
Example Request
curl -X POST \
https://200notes.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"password": "securepassword123"
}'
Refresh API Keys
POST /auth/refresh-keys
Generate new API credentials. Requires existing valid authentication.
Example Request
curl -X POST \ https://200notes.com/api/v1/auth/refresh-keys \ -H "Authorization: Bearer sk-abc123:xyz789" \ -H "Content-Type: application/json"
✅ Project Management
Complete CRUD operations for projects.
List Projects
GET /projects
Get all projects the authenticated user has access to.
Example Request
curl -X GET \ https://200notes.com/api/v1/projects \ -H "Authorization: Bearer sk-abc123:xyz789"
Example Response
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Marketing Campaign",
"description": "Q1 marketing campaign planning",
"is_favorite": false,
"owner": {
"id": 1,
"name": "John Doe",
"email": "john@example.com"
},
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-16T14:20:00.000000Z"
}
]
}
Create Project
POST /projects
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Project name (max 255 characters) |
description |
string | No | Project description |
Example Request
curl -X POST \
https://200notes.com/api/v1/projects \
-H "Authorization: Bearer sk-abc123:xyz789" \
-H "Content-Type: application/json" \
-d '{
"name": "New Project",
"description": "A project for managing client deliverables"
}'
Example Response
{
"message": "Project created successfully",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "New Project",
"description": "A project for managing client deliverables",
"is_favorite": false,
"owner_id": 1,
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-15T10:30:00.000000Z"
}
}
Get Project
GET /projects/{id}
Get details of a specific project you have access to.
Example Request
curl -X GET \ https://200notes.com/api/v1/projects/550e8400-e29b-41d4-a716-446655440000 \ -H "Authorization: Bearer sk-abc123:xyz789"
Example Response
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Marketing Campaign",
"description": "Q1 marketing campaign planning",
"is_favorite": false,
"owner": {
"id": 1,
"name": "John Doe",
"email": "john@example.com"
},
"role": "owner",
"created_at": "2024-01-15T10:30:00.000000Z",
"updated_at": "2024-01-16T14:20:00.000000Z"
}
}
Update Project
PUT /projects/{id}
Update an existing project. Only accessible to project members.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | No | Project name (max 255 characters) |
description |
string | No | Project description |
Example Request
curl -X PUT \
https://200notes.com/api/v1/projects/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer sk-abc123:xyz789" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Project Name",
"description": "Updated project description"
}'
Delete Project
DELETE /projects/{id}
Delete a project. Only accessible to project owners.
Example Request
curl -X DELETE \ https://200notes.com/api/v1/projects/550e8400-e29b-41d4-a716-446655440000 \ -H "Authorization: Bearer sk-abc123:xyz789"
Toggle Project Favorite
POST /projects/{id}/favorite
Toggle the favorite status of a project.
Example Request
curl -X POST \ https://200notes.com/api/v1/projects/550e8400-e29b-41d4-a716-446655440000/favorite \ -H "Authorization: Bearer sk-abc123:xyz789"
✅ Team Collaboration
Manage project team members and collaboration.
⚠️ Implementation Status
Routes are defined but some controller methods are still being implemented. Check the actual API responses for current functionality.
Invite Team Member
POST /projects/{id}/invite
List Project Members
GET /projects/{id}/members
Update Member Role
PUT /projects/{id}/members/{user_id}
Remove Team Member
DELETE /projects/{id}/members/{user_id}
🚧 Notes (Coming Soon)
Note management endpoints will be available in Phase 2.
📝 Planned Endpoints
- GET /projects/{id}/notes - List project notes
- POST /projects/{id}/notes - Create a new note
- GET /notes/{id} - Get note details
- PUT /notes/{id} - Update note
- DELETE /notes/{id} - Delete note
🚧 Tasks (Coming Soon)
Task management endpoints will be available in Phase 2.
✅ Planned Endpoints
- GET /projects/{id}/tasks - List project tasks
- POST /projects/{id}/tasks - Create a new task
- GET /tasks/{id} - Get task details
- PUT /tasks/{id} - Update task
- DELETE /tasks/{id} - Delete task
- PATCH /tasks/{id}/status - Update task status
🚧 AI Features (Coming Soon)
AI-powered analysis endpoints will be available in Phase 3.
🤖 Planned Endpoints
- POST /ai/analyze-project/{id} - Analyze project with AI
- GET /ai/analyses/{project_id} - Get analysis history
- POST /ai/generate-tasks - Generate task suggestions
HTTP Status Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | Invalid request format |
| 401 | Unauthorized | Invalid or missing authentication |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource not found |
| 422 | Unprocessable Entity | Validation errors |
| 500 | Internal Server Error | Server error |
Error Response Examples
Validation Error (422)
{
"error": "Validation failed",
"messages": {
"name": [
"The name field is required."
]
}
}
Authentication Error (401)
{
"message": "Unauthenticated."
}
Access Denied (403)
{
"error": "Access denied"
}
🚀 Start Building
Ready to integrate with 200Notes? Start with authentication and try the project management endpoints above.