Apideck · Schema

Project

IntegrationsUnified API

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
View JSON Schema on GitHub

JSON Schema

apideck-project-schema.json Raw ↑
{
  "$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"
    }
  }
}