Prerequisites
- Active Claude subscription (Pro, Max, or API access)
- COR API credentials (API Key and Client Secret)
Setup
- Install Claude Code globally:
Copy
Ask AI
npm install -g @anthropic-ai/claude-code
- Navigate to your project directory.
- Add the
CLAUDE.mdfile below to your project root. - Run
claudeto start.
Create CLAUDE.md
Create a CLAUDE.md file at the root of your project to provide Claude Code with COR API context:
Copy
Ask AI
# COR API Integration
## Working Relationship
- Ask for clarification rather than making assumptions about API usage
- Verify endpoint paths and required fields before generating code
- Reference the COR API documentation when uncertain
## COR Platform
COR is a project management platform for agencies. Three APIs are available:
| API | Base URL |
|-----|----------|
| Main API | `https://api.projectcor.com/v1` |
| Resource Allocation | `https://planner.svc.v2.projectcor.com` |
| Integrations | `https://integrations.projectcor.com` |
## Authentication
OAuth 2.0 with Bearer tokens (same token for all APIs).
```bash
# Get token
curl -X POST 'https://api.projectcor.com/v1/oauth/token?grant_type=client_credentials' \
-H 'Authorization: Basic BASE64(API_KEY:CLIENT_SECRET)'
# Use token
Authorization: Bearer ACCESS_TOKEN
```
## Main API Entities
- **Clients** `/clients` - Customer accounts
- **Projects** `/projects` - Project management
- **Tasks** `/tasks` - Task tracking
- **Hours** `/hours` - Time entries
- **Users** `/users` - Team members
- **Brands** `/brands` - Client brands
- **Products** `/products` - Brand products
### User Roles
`1` C-Level, `2` Director, `3` Project Manager, `4` Collaborator, `5` Freelancer, `6` Client
### Task Status
`nueva` (new), `en_proceso` (in progress), `estancada` (stalled), `finalizada` (completed)
### Project Status
`in_process`, `finished`, `suspended`
## Data Conventions
### Pagination
```json
{"total": "45", "perPage": 20, "page": 1, "lastPage": 3, "data": [...]}
```
- `page`: Page number (default 1, set `false` for all)
- `perPage`: Items per page (default 20)
### Filters
URL-encoded JSON: `?filters=%7B%22client_id%22%3A123%7D`
### Dates
Request: `YYYY-MM-DD` | Response: `YYYY-MM-DD HH:mm:ss`
## Resource Allocation API
Manages user capacity on projects.
### Endpoints
- `POST /allocation/saveAllocation` - Create
- `PUT /allocation/updateAllocation` - Update
- `DELETE /allocation/removeAllocation` - Delete
- `GET /allocation/getAllocations/{projectId}` - List
### Allocation Object
```json
{
"userId": 1111,
"companyId": 1111,
"resource": {"typeId": "Project", "entityId": 1111},
"from": "2024-06-01",
"to": "2024-10-31",
"assignedByUserId": 11111,
"allocatedHours": 20
}
```
### Validation
- `from` < `to`, max 12 months range
- No overlapping allocations
- `allocatedHours` required
## Integrations API
Syncs external systems (Salesforce, Jira, SAP, Okta, etc.) with COR.
### Required: metadata.source
```json
{
"metadata": {"source": "SALESFORCE"},
"id": "external-id",
"name": "Entity Name"
}
```
### Sources
`JIRA`, `SALESFORCE`, `ADVERTMIND`, `QUICKBOOKS`, `ZAPIER`, `OKTA`, `MICROSOFT_DYNAMICS`, `GITHUB`, `MICROSOFT_TEAMS`, `VBS`, `SAP`, `GLOBANT`
### Entities
Projects, Clients, Users, Working Time, Contracts, Workspaces, Brands
### Error Codes
`ZC001` Generic, `ZC002` Validation, `ZC003` API Request, `ZC004` Query, `ZC005` External Request
## HTTP Status Codes
`200` OK, `201` Created, `400` Bad Request, `401` Unauthorized, `403` Forbidden, `404` Not Found, `422` Validation Error, `429` Rate Limited, `500` Server Error
## Do Not
- Hardcode API credentials in source code
- Skip token refresh handling
- Ignore pagination on list endpoints
- Omit `metadata.source` on Integration API calls
- Send invalid date formats (use YYYY-MM-DD)
- Create overlapping resource allocations

