Properties
| Name | Type | Description |
|---|---|---|
| id | object | |
| downstream_id | object | |
| name | string | Name of the project |
| display_id | string | User-friendly project identifier |
| reference_id | string | External reference identifier for the project |
| description | string | Detailed description of the project |
| status | string | Current status of the project |
| active | boolean | Indicates whether the project is currently active or inactive |
| project_type | string | Type or category of the project |
| priority | string | Priority level of the project |
| completion_percentage | number | Percentage of project completion (0-100) |
| start_date | string | Start date of the project |
| end_date | string | Expected or planned end date of the project |
| completion_date | string | Actual end date of the project |
| customer | object | |
| department | object | Department or organizational unit associated with the project |
| company_id | object | |
| owner_id | string | ID of the user who owns/manages this project |
| parent_project | object | Parent project if this is a subproject |
| currency | object | |
| budget_amount | number | Total budgeted amount for the project |
| approved_amount | number | Approved budget amount for the project |
| actual_amount | number | Total actual amount spent on the project |
| budget_hours | number | Total budgeted hours for the project |
| actual_hours | number | Total actual hours worked on the project |
| hourly_rate | number | Default hourly rate for project work |
| billing_method | string | Method used for billing this project |
| is_billable | boolean | Indicates if the project is billable to the customer |
| phase | string | Current phase of the project lifecycle |
| tax_rate | object | |
| tracking_categories | object | |
| tags | array | Tags associated with the project |
| notes | string | Additional notes about the project |
| contract_number | string | Contract or agreement number associated with the project |
| profit_margin | number | Expected profit margin percentage for the project |
| schedule_status | string | Current status of project schedule compared to plan |
| addresses | array | An array of addresses associated with the project (billing, job site, etc.) |
| team_size | integer | Number of team members assigned to the project |
| custom_fields | array | |
| row_version | object | |
| updated_by | object | |
| created_by | object | |
| created_at | object | |
| updated_at | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Project",
"title": "Project",
"type": "object",
"x-apideck-schema-id": "Project",
"additionalProperties": false,
"x-apideck-weights": {
"id": "critical",
"downstream_id": "edge-case",
"name": "critical",
"display_id": "medium",
"reference_id": "medium",
"description": "medium",
"status": "high",
"active": "high",
"project_type": "medium",
"priority": "medium",
"completion_percentage": "medium",
"completion_date": "medium",
"start_date": "medium",
"end_date": "medium",
"customer": "high",
"department": "medium",
"company_id": "medium",
"owner_id": "medium",
"parent_project": "low",
"currency": "medium",
"budget_amount": "medium",
"approved_amount": "medium",
"actual_amount": "low",
"budget_hours": "medium",
"actual_hours": "low",
"hourly_rate": "medium",
"billing_method": "medium",
"is_billable": "medium",
"phase": "medium",
"tax_rate": "medium",
"tracking_categories": "medium",
"custom_fields": "medium",
"tags": "low",
"notes": "low",
"contract_number": "medium",
"profit_margin": "medium",
"schedule_status": "medium",
"addresses": "medium",
"team_size": "low",
"updated_by": "edge-case",
"created_by": "edge-case",
"updated_at": "medium",
"created_at": "medium",
"row_version": "edge-case"
},
"required": [
"name"
],
"properties": {
"id": {
"$ref": "#/components/schemas/Id"
},
"downstream_id": {
"$ref": "#/components/schemas/DownstreamId"
},
"name": {
"type": "string",
"title": "Project name",
"description": "Name of the project",
"example": "Website Redesign Project",
"minLength": 1
},
"display_id": {
"type": "string",
"title": "Display ID",
"description": "User-friendly project identifier",
"example": "PROJ-001",
"nullable": true
},
"reference_id": {
"type": "string",
"title": "Reference ID",
"description": "External reference identifier for the project",
"example": "WD-REF-2024-001",
"nullable": true
},
"description": {
"type": "string",
"title": "Description",
"description": "Detailed description of the project",
"example": "Complete redesign of the company website including new branding and improved user experience",
"nullable": true
},
"status": {
"type": "string",
"title": "Project Status",
"description": "Current status of the project",
"example": "active",
"enum": [
"active",
"completed",
"on_hold",
"cancelled",
"draft",
"in_progress",
"approved",
"other"
],
"x-apideck-enum-id": "project.status",
"nullable": true
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates whether the project is currently active or inactive",
"example": true,
"nullable": true
},
"project_type": {
"type": "string",
"title": "Project Type",
"description": "Type or category of the project",
"example": "client_project",
"enum": [
"client_project",
"internal_project",
"maintenance",
"research_development",
"training",
"other"
],
"x-apideck-enum-id": "project.project_type",
"nullable": true
},
"priority": {
"type": "string",
"title": "Priority",
"description": "Priority level of the project",
"example": "high",
"enum": [
"low",
"medium",
"high",
"critical"
],
"x-apideck-enum-id": "project.priority",
"nullable": true
},
"completion_percentage": {
"type": "number",
"minimum": 0,
"maximum": 100,
"title": "Completion Percentage",
"description": "Percentage of project completion (0-100)",
"example": 75.5,
"nullable": true
},
"start_date": {
"type": "string",
"format": "date",
"title": "Start Date",
"description": "Start date of the project",
"example": "2024-01-15",
"nullable": true
},
"end_date": {
"type": "string",
"format": "date",
"title": "End Date",
"description": "Expected or planned end date of the project",
"example": "2024-06-30",
"nullable": true
},
"completion_date": {
"type": "string",
"format": "date",
"title": "End Date",
"description": "Actual end date of the project",
"example": "2024-08-06",
"nullable": true
},
"customer": {
"$ref": "#/components/schemas/LinkedCustomer"
},
"department": {
"type": "object",
"title": "Department",
"description": "Department or organizational unit associated with the project",
"nullable": true,
"properties": {
"id": {
"type": "string",
"title": "Department ID",
"description": "Unique identifier for the department",
"example": "DEPT-001"
},
"name": {
"type": "string",
"title": "Department Name",
"description": "Name of the department",
"example": "Marketing"
}
}
},
"company_id": {
"$ref": "#/components/schemas/AccountingCompanyId"
},
"owner_id": {
"type": "string",
"title": "Owner ID",
"description": "ID of the user who owns/manages this project",
"example": "12345",
"nullable": true
},
"parent_project": {
"type": "object",
"title": "Parent Project",
"description": "Parent project if this is a subproject",
"nullable": true,
"properties": {
"id": {
"type": "string",
"title": "Parent Project ID",
"description": "Unique identifier for the parent project",
"example": "PROJ-PARENT-001"
},
"name": {
"type": "string",
"title": "Parent Project Name",
"description": "Name of the parent project",
"example": "Company Website Overhaul"
}
}
},
"currency": {
"$ref": "#/components/schemas/Currency"
},
"budget_amount": {
"type": "number",
"multipleOf": 0.01,
"title": "Budget Amount",
"description": "Total budgeted amount for the project",
"example": 50000,
"nullable": true
},
"approved_amount": {
"type": "number",
"multipleOf": 0.01,
"title": "Approved Amount",
"description": "Approved budget amount for the project",
"example": 48000,
"nullable": true
},
"actual_amount": {
"type": "number",
"multipleOf": 0.01,
"title": "Actual Amount",
"description": "Total actual amount spent on the project",
"example": 45250.75,
"nullable": true,
"readOnly": true
},
"budget_hours": {
"type": "number",
"title": "Budget Hours",
"description": "Total budgeted hours for the project",
"example": 400,
"nullable": true
},
"actual_hours": {
"type": "number",
"title": "Actual Hours",
"description": "Total actual hours worked on the project",
"example": 385.5,
"nullable": true,
"readOnly": true
},
"hourly_rate": {
"type": "number",
"multipleOf": 0.01,
"title": "Hourly Rate",
"description": "Default hourly rate for project work",
"example": 125,
"nullable": true
},
"billing_method": {
"type": "string",
"title": "Billing Method",
"description": "Method used for billing this project",
"example": "time_and_materials",
"enum": [
"fixed_price",
"time_and_materials",
"milestone_based",
"retainer",
"non_billable"
],
"x-apideck-enum-id": "project.billing_method",
"nullable": true
},
"is_billable": {
"type": "boolean",
"title": "Is Billable",
"description": "Indicates if the project is billable to the customer",
"example": true,
"default": true,
"nullable": true
},
"phase": {
"type": "string",
"title": "Project Phase",
"description": "Current phase of the project lifecycle",
"example": "execution",
"enum": [
"initiation",
"planning",
"execution",
"monitoring",
"closure",
"other"
],
"x-apideck-enum-id": "project.phase",
"nullable": true
},
"tax_rate": {
"$ref": "#/components/schemas/LinkedTaxRate"
},
"tracking_categories": {
"$ref": "#/components/schemas/LinkedTrackingCategories"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"title": "Tags",
"description": "Tags associated with the project",
"example": [
"website",
"redesign",
"urgent"
]
},
"notes": {
"type": "string",
"title": "Notes",
"description": "Additional notes about the project",
"example": "Client has requested modern design with mobile-first approach",
"nullable": true
},
"contract_number": {
"type": "string",
"title": "Contract Number",
"description": "Contract or agreement number associated with the project",
"example": "CNT-2024-001",
"nullable": true
},
"profit_margin": {
"type": "number",
"title": "Profit Margin",
"description": "Expected profit margin percentage for the project",
"example": 15.5,
"minimum": 0,
"maximum": 100,
"nullable": true
},
"schedule_status": {
"type": "string",
"title": "Schedule Status",
"description": "Current status of project schedule compared to plan",
"example": "on_schedule",
"enum": [
"ahead_of_schedule",
"on_schedule",
"behind_schedule",
"critical_delay"
],
"x-apideck-enum-id": "project.schedule_status",
"nullable": true
},
"addresses": {
"type": "array",
"title": "Addresses",
"description": "An array of addresses associated with the project (billing, job site, etc.)",
"items": {
"$ref": "#/components/schemas/Address"
}
},
"team_size": {
"type": "integer",
"title": "Team Size",
"description": "Number of team members assigned to the project",
"example": 8,
"minimum": 0,
"nullable": true
},
"custom_fields": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomField"
}
},
"row_version": {
"$ref": "#/components/schemas/RowVersion"
},
"updated_by": {
"$ref": "#/components/schemas/UpdatedBy"
},
"created_by": {
"$ref": "#/components/schemas/CreatedBy"
},
"created_at": {
"$ref": "#/components/schemas/CreatedAt"
},
"updated_at": {
"$ref": "#/components/schemas/UpdatedAt"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/apideck-project"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.