> ## Documentation Index
> Fetch the complete documentation index at: https://developers.projectcor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Projects

> Retrieves a paginated list of projects for the company. Supports filtering by client, dates, status, health, and more. By default, responses are paginated with 20 items per page.



## OpenAPI

````yaml /api-reference/openapi.json get /projects
openapi: 3.1.0
info:
  title: COR API
  description: >-
    The COR API lets you integrate with projectcor.com applications using simple
    HTTP methods, in either XML or JSON formats, making this an ideal API for
    developing integrations with other softwares, external clients or mobile
    applications
  version: 1.0.0
servers:
  - url: https://api.projectcor.com/v1
    description: Production server
security:
  - bearerAuth: []
paths:
  /projects:
    get:
      tags:
        - Projects
      summary: Get Projects
      description: >-
        Retrieves a paginated list of projects for the company. Supports
        filtering by client, dates, status, health, and more. By default,
        responses are paginated with 20 items per page.
      parameters:
        - name: page
          in: query
          schema:
            type:
              - integer
              - boolean
            default: 1
          description: >-
            Page number (default: 1). Set to `false` to disable pagination and
            return all results.
        - name: perPage
          in: query
          schema:
            type: integer
            default: 20
          description: 'Number of items per page when pagination is active (default: 20).'
        - name: filters
          in: query
          schema:
            type: string
          description: >-
            URL-encoded JSON object with filter criteria. Available fields:
            `dateStart` (YYYY-MM-DD), `dateEnd` (YYYY-MM-DD), `client_id`
            (number), `team_id` (number), `user_id` (number), `brand_id`
            (number), `product_id` (number), `status`
            ("finished"|"in_process"|"suspended"), `health` (1-4), `archived`
            (1=archived, 2=active).
      responses:
        '200':
          description: Paginated list of projects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedProjectsResponse'
components:
  schemas:
    PaginatedProjectsResponse:
      type: object
      description: Paginated response for projects list
      properties:
        total:
          type:
            - string
            - integer
          description: Total number of projects matching the filters
        perPage:
          type: integer
          description: Number of items per page
        page:
          type: integer
          description: Current page number
        lastPage:
          type: integer
          description: Last available page number
        meta_data:
          type: object
          description: Additional metadata
          properties:
            profitability_limit:
              type: string
              description: Company profitability limit setting
        data:
          type: array
          description: Array of projects for the current page
          items:
            $ref: '#/components/schemas/Project'
    Project:
      type: object
      properties:
        id:
          type: integer
          description: Unique project identifier
        name:
          type: string
          description: Project name
        brief:
          type: string
          description: Project brief/description
        client_id:
          type: integer
          description: Associated client ID
        health:
          type: integer
          enum:
            - 1
            - 2
            - 3
            - 4
          description: >-
            Project health indicator: 1 (on track), 2 (at risk), 3 (delayed), 4
            (critical)
        status:
          type: string
          enum:
            - active
            - finished
            - suspended
          description: Project status
        start:
          type: string
          format: date-time
          description: Project start date
        end:
          type: string
          format: date-time
          description: Project end date
        estimated_time:
          type: number
          description: Estimated hours for the project
        elapsed_time:
          type: number
          description: Hours already logged
        profitability_now:
          type: number
          description: Current profitability percentage
        estimated_profitability:
          type: number
          description: Estimated profitability percentage
        archived:
          type: boolean
          description: Whether the project is archived
        billable:
          type: boolean
          description: Whether the project is billable
        income_type:
          type: string
          enum:
            - fee
            - one_time
            - hourly_rate
            - contract
          description: Project billing type
        pm_id:
          type: integer
          description: Project Manager user ID
        created_by:
          type: integer
          description: User ID who created the project
        company_id:
          type: integer
          description: Company ID
        template_id:
          type: integer
          description: Project template ID used
        brand_id:
          type: integer
          description: Associated brand ID
        product_id:
          type: integer
          description: Associated product ID
        total_estimated:
          type: number
          description: Total estimated budget
        created_at:
          type: string
          format: date-time
          description: Creation timestamp
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
        labels:
          type: array
          description: >-
            IDs of labels assigned to this project. Resolve names and styling
            via **Get Categories and Labels** with `model=project` (`GET
            /categories/labels-model?model=project`), which returns label
            objects including the same `id` values.
          items:
            type: integer
        client:
          type: object
          description: Associated client object
          properties:
            id:
              type: integer
            name:
              type: string
            client_status_id:
              type: integer
        pm:
          type: object
          description: Project Manager details
          properties:
            id:
              type: integer
            first_name:
              type: string
            last_name:
              type: string
            email:
              type: string
            role_id:
              type: integer
        estimated_by_position:
          type: boolean
          description: Whether time estimation is split per position
        estimation_by_categories:
          type:
            - boolean
            - integer
          description: Whether time estimation is split per category
        estimated_by_hourly_rates:
          type:
            - boolean
            - string
          description: Whether income is calculated from hourly rates using a ratecard
        user_positions_header_id:
          type: integer
          nullable: true
          description: ID of the ratecard assigned to this project
        fee_id:
          type: integer
          nullable: true
          description: Associated fee ID
        contract_id:
          type: integer
          nullable: true
          description: Associated contract ID
        usersPositionsProject:
          type: array
          description: >-
            Positions assigned to the project with their estimated and logged
            hours. Only present when fetching a single project (`GET
            /projects/{project_id}`).
          items:
            type: object
            properties:
              id:
                type: integer
                description: Row ID in user_positions_projects
              user_positions_unified_id:
                type: integer
                description: Unified position ID
              project_id:
                type: integer
              estimated_hours:
                type: number
                description: Estimated hours for this position
              hours_charged:
                type: number
                description: Hours already logged against this position
              total_cost:
                type: number
                description: Total cost accrued for this position
              userPositionName:
                type: object
                nullable: true
                description: Position name in the requested language
                properties:
                  name:
                    type: string
        categoriesProject:
          type: array
          description: >-
            Categories assigned to the project with their estimated and logged
            hours. Only present when fetching a single project.
          items:
            type: object
            properties:
              id:
                type: integer
              category_id:
                type: integer
              estimated_hours:
                type: number
              hours_charged:
                type: number
              total_cost:
                type: number
        ratecard:
          type: object
          nullable: true
          description: >-
            Ratecard assigned to this project. Only present when fetching a
            single project.
          properties:
            id:
              type: integer
            name:
              type: string
            original_name:
              type: string
            percent:
              type: number
            currency_id:
              type: integer
              nullable: true
            linked_to_base_price:
              type: boolean
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````