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.