Get Project

Returns the full detail of a single project, identified by its Sodtrack id.

GET/api/integration/project/{projectId}

Request

cURL
curl -X GET "https://uat.integration.cl.sodtrack-shared.sodtrack.com/api/integration/project/{projectId}" \
  -H "Authorization: Bearer $SODTRACK_TOKEN"

Base URL: https://uat.integration.cl.sodtrack-shared.sodtrack.com · other environments

Path parameters

NameTypeDescription
projectIdrequiredstring—

Responses

Get Project
{
  "id": 88,
  "reference": "PROJ-EXT-100",
  "name": "Living room remodeling",
  "status": "in_execution",
  "customer": {
    "id": 2001,
    "reference": "EXT-CUSTOMER-REF-001",
    "name": "Laura",
    "lastname": "Gómez"
  },
  "startDate": "2025-03-15T00:00:00.000Z",
  "endDate": null,
  "createdDate": "2025-03-10T14:22:00.000Z",
  "description": "Full remodeling of the living room",
  "metadata": null,
  "approvedDate": "2025-03-12T10:00:00.000Z",
  "provider": {
    "id": 42,
    "reference": "PROV-REF-42",
    "name": "Servicios del Sur",
    "lastname": "SpA",
    "email": "contacto@serviciosdelsur.example.com",
    "phone": "+56912345678",
    "identificationNumber": "76123456-7",
    "assignedTo": {
      "name": "María",
      "lastname": "Técnica",
      "email": "maria.tecnica@example.com"
    }
  },
  "service": {
    "id": 10,
    "name": "Instalación"
  },
  "address": {
    "formattedAddress": "Av. Providencia 1234, Santiago, Chile",
    "coordinates": {
      "lat": -33.43324794409109,
      "lng": -70.58645659063548
    }
  },
  "lead": {
    "id": 4521,
    "reference": "LEAD-EXT-1001"
  },
  "responsibleUser": {
    "id": 3120,
    "reference": null,
    "name": "Pedro",
    "lastname": "Rojas"
  },
  "creatorUser": {
    "id": 3120,
    "reference": null,
    "name": "Pedro",
    "lastname": "Rojas"
  },
  "shoppingCarts": [
    {
      "id": 501,
      "reference": "CART-EXT-501",
      "status": "paid",
      "operationalStatus": "in_execution",
      "stageName": "Stage 1",
      "finalPrice": 150000,
      "finalCost": 80000,
      "currency": {
        "id": 2,
        "name": "CLP",
        "symbol": "$"
      },
      "createdDate": "2025-03-10T14:25:00.000Z",
      "bookings": [
        {
          "id": 10452,
          "reference": "ORD-2025-001",
          "status": "accepted",
          "scheduledDate": "2025-03-15T09:00:00.000Z",
          "quantity": 1,
          "totalDurationMinutes": 90,
          "doneDate": null,
          "createdDate": "2025-03-10T14:22:00.000Z",
          "customer": {
            "id": 2001,
            "reference": "EXT-CUSTOMER-REF-001"
          },
          "stakeholder": {
            "id": "stakeholder-uuid-01",
            "reference": "STK-REF-001"
          },
          "service": {
            "id": 10,
            "name": "Instalación"
          },
          "variant": {
            "id": 321,
            "name": "Instalación cortinas",
            "type": "execution",
            "skus": [
              "install_curtains_sku"
            ]
          },
          "category": {
            "id": 5,
            "name": "Hogar"
          },
          "address": {
            "formattedAddress": "Av. Providencia 1234, Santiago, Chile",
            "coordinates": {
              "lat": -33.43324794409109,
              "lng": -70.58645659063548
            }
          },
          "originAddress": null,
          "saleChannel": {
            "id": 1,
            "name": "Canal principal",
            "reference": "E001",
            "coordinates": null
          },
          "project": {
            "id": 88,
            "reference": "PROJ-EXT-100"
          },
          "lead": {
            "id": 4521,
            "reference": "LEAD-EXT-1001"
          },
          "provider": {
            "id": 42,
            "reference": "PROV-REF-42",
            "name": "María",
            "lastname": "Técnica",
            "email": "maria.tecnica@example.com",
            "phone": "+56912345678",
            "identificationNumber": "12345678-9",
            "assignedTo": null
          },
          "bookingBundle": null,
          "price": 150000,
          "cost": 80000,
          "bookingAddOns": [
            {
              "id": 501,
              "name": "Material extra",
              "reference": "ADDON-REF-01"
            }
          ],
          "products": [
            {
              "id": 300,
              "name": "Cortina roller",
              "sku": "CURTAIN-001",
              "productType": "product",
              "quantity": 2,
              "serialNumber": null,
              "pricing": {
                "price": 45000,
                "cost": 30000,
                "currency": {
                  "id": 2,
                  "name": "CLP",
                  "symbol": "$"
                }
              }
            },
            {
              "id": 415,
              "name": "Soporte de pared",
              "sku": "BRACKET-010",
              "productType": "component",
              "quantity": 4,
              "serialNumber": null,
              "pricing": {
                "price": 3500,
                "cost": null,
                "currency": null
              }
            }
          ],
          "incidents": [
            {
              "id": 77,
              "reference": "INC-REF-77"
            }
          ],
          "alerts": [
            {
              "id": 23,
              "reference": "ALRT-E23423S2"
            }
          ],
          "notes": [
            {
              "id": 12,
              "note": "Cliente solicita ventana matutina.",
              "reference": null
            }
          ],
          "dynamicFormSnapshotFields": [
            {
              "id": "field-uuid-1",
              "reference": "purchase_channel",
              "value": "online",
              "type": "text",
              "snapshotId": "snapshot-uuid-1"
            }
          ]
        }
      ]
    },
    {
      "id": 502,
      "reference": null,
      "status": "active",
      "operationalStatus": "created",
      "stageName": null,
      "finalPrice": 0,
      "finalCost": 0,
      "currency": null,
      "createdDate": "2025-03-18T09:00:00.000Z",
      "bookings": []
    }
  ],
  "notes": [
    {
      "id": 301,
      "note": "Customer requests morning visits.",
      "reference": "NOTE-EXT-301"
    }
  ],
  "attachments": [
    {
      "id": 77,
      "name": "floor-plan.pdf",
      "url": "https://files.example.com/projects/88/floor-plan.pdf?X-Amz-Expires=86400&X-Amz-Signature=...",
      "comment": "Floor plan",
      "createdDate": "2025-03-11T16:00:00.000Z"
    }
  ],
  "dynamicFields": [
    {
      "id": 910,
      "fieldId": 12,
      "label": "Estimated budget",
      "type": "text",
      "value": "1500 USD"
    }
  ]
}

Error responses for this endpoint follow the shared error reference.

Purpose

Returns the full detail of a single project, identified by its Sodtrack id.

Besides the project data, the response includes the customer, the main provider, the service, the address, the linked lead, and the users responsible for and who created the project. It also includes:

  • Shopping carts: every shopping cart of the project with its totals, and the full detail of each booking, with the same structure returned by Get bookings.
  • Notes, attachments (with a temporary download URL) and dynamic fields loaded on the project.

To find projects by reference or by customer, use GET Projects.


Field Definitions

🔐 Authentication

FieldTypeRequiredDescription
x-api-key (header)string✅External integration API key provided by Sodtrack.

🔎 Path parameters

ParameterTypeRequiredDescription
projectIdnumber✅Sodtrack project id. Must be an integer.

Example Request

Path parameter example:

code
projectId = 88

Response Example

json
{
  "id": 88,
  "reference": "PROJ-EXT-100",
  "name": "Living room remodeling",
  "status": "in_execution",
  "customer": {
    "id": 2001,
    "reference": "EXT-CUSTOMER-REF-001",
    "name": "Laura",
    "lastname": "Gómez"
  },
  "startDate": "2025-03-15T00:00:00.000Z",
  "endDate": null,
  "createdDate": "2025-03-10T14:22:00.000Z",
  "description": "Full remodeling of the living room",
  "metadata": null,
  "approvedDate": "2025-03-12T10:00:00.000Z",
  "provider": {
    "id": 42,
    "reference": "PROV-REF-42",
    "name": "Servicios del Sur",
    "lastname": "SpA",
    "email": "contacto@serviciosdelsur.example.com",
    "phone": "+56912345678",
    "identificationNumber": "76123456-7",
    "assignedTo": {
      "name": "María",
      "lastname": "Técnica",
      "email": "maria.tecnica@example.com"
    }
  },
  "service": {
    "id": 10,
    "name": "Instalación"
  },
  "address": {
    "formattedAddress": "Av. Providencia 1234, Santiago, Chile",
    "coordinates": {
      "lat": -33.43324794409109,
      "lng": -70.58645659063548
    }
  },
  "lead": {
    "id": 4521,
    "reference": "LEAD-EXT-1001"
  },
  "responsibleUser": {
    "id": 3120,
    "reference": null,
    "name": "Pedro",
    "lastname": "Rojas"
  },
  "creatorUser": {
    "id": 3120,
    "reference": null,
    "name": "Pedro",
    "lastname": "Rojas"
  },
  "shoppingCarts": [
    {
      "id": 501,
      "reference": "CART-EXT-501",
      "status": "paid",
      "operationalStatus": "in_execution",
      "stageName": "Stage 1",
      "finalPrice": 150000,
      "finalCost": 80000,
      "currency": {
        "id": 2,
        "name": "CLP",
        "symbol": "$"
      },
      "createdDate": "2025-03-10T14:25:00.000Z",
      "bookings": [
        {
          "id": 10452,
          "reference": "ORD-2025-001",
          "status": "accepted",
          "scheduledDate": "2025-03-15T09:00:00.000Z",
          "quantity": 1,
          "totalDurationMinutes": 90,
          "doneDate": null,
          "createdDate": "2025-03-10T14:22:00.000Z",
          "customer": {
            "id": 2001,
            "reference": "EXT-CUSTOMER-REF-001"
          },
          "stakeholder": {
            "id": "stakeholder-uuid-01",
            "reference": "STK-REF-001"
          },
          "service": {
            "id": 10,
            "name": "Instalación"
          },
          "variant": {
            "id": 321,
            "name": "Instalación cortinas",
            "type": "execution",
            "skus": [
              "install_curtains_sku"
            ]
          },
          "category": {
            "id": 5,
            "name": "Hogar"
          },
          "address": {
            "formattedAddress": "Av. Providencia 1234, Santiago, Chile",
            "coordinates": {
              "lat": -33.43324794409109,
              "lng": -70.58645659063548
            }
          },
          "originAddress": null,
          "saleChannel": {
            "id": 1,
            "name": "Canal principal",
            "reference": "E001",
            "coordinates": null
          },
          "project": {
            "id": 88,
            "reference": "PROJ-EXT-100"
          },
          "lead": {
            "id": 4521,
            "reference": "LEAD-EXT-1001"
          },
          "provider": {
            "id": 42,
            "reference": "PROV-REF-42",
            "name": "María",
            "lastname": "Técnica",
            "email": "maria.tecnica@example.com",
            "phone": "+56912345678",
            "identificationNumber": "12345678-9",
            "assignedTo": null
          },
          "bookingBundle": null,
          "price": 150000,
          "cost": 80000,
          "bookingAddOns": [
            {
              "id": 501,
              "name": "Material extra",
              "reference": "ADDON-REF-01"
            }
          ],
          "products": [
            {
              "id": 300,
              "name": "Cortina roller",
              "sku": "CURTAIN-001",
              "productType": "product",
              "quantity": 2,
              "serialNumber": null,
              "pricing": {
                "price": 45000,
                "cost": 30000,
                "currency": {
                  "id": 2,
                  "name": "CLP",
                  "symbol": "$"
                }
              }
            },
            {
              "id": 415,
              "name": "Soporte de pared",
              "sku": "BRACKET-010",
              "productType": "component",
              "quantity": 4,
              "serialNumber": null,
              "pricing": {
                "price": 3500,
                "cost": null,
                "currency": null
              }
            }
          ],
          "incidents": [
            {
              "id": 77,
              "reference": "INC-REF-77"
            }
          ],
          "alerts": [
            {
              "id": 23,
              "reference": "ALRT-E23423S2"
            }
          ],
          "notes": [
            {
              "id": 12,
              "note": "Cliente solicita ventana matutina.",
              "reference": null
            }
          ],
          "dynamicFormSnapshotFields": [
            {
              "id": "field-uuid-1",
              "reference": "purchase_channel",
              "value": "online",
              "type": "text",
              "snapshotId": "snapshot-uuid-1"
            }
          ]
        }
      ]
    },
    {
      "id": 502,
      "reference": null,
      "status": "active",
      "operationalStatus": "created",
      "stageName": null,
      "finalPrice": 0,
      "finalCost": 0,
      "currency": null,
      "createdDate": "2025-03-18T09:00:00.000Z",
      "bookings": []
    }
  ],
  "notes": [
    {
      "id": 301,
      "note": "Customer requests morning visits.",
      "reference": "NOTE-EXT-301"
    }
  ],
  "attachments": [
    {
      "id": 77,
      "name": "floor-plan.pdf",
      "url": "https://files.example.com/projects/88/floor-plan.pdf?X-Amz-Expires=86400&X-Amz-Signature=...",
      "comment": "Floor plan",
      "createdDate": "2025-03-11T16:00:00.000Z"
    }
  ],
  "dynamicFields": [
    {
      "id": 910,
      "fieldId": 12,
      "label": "Estimated budget",
      "type": "text",
      "value": "1500 USD"
    }
  ]
}

Project without shopping carts, notes, attachments or dynamic fields:

json
{
  "id": 90,
  "reference": "PROJ-EXT-102",
  "name": "Kitchen repair",
  "status": "created",
  "customer": {
    "id": 2001,
    "reference": "EXT-CUSTOMER-REF-001",
    "name": "Laura",
    "lastname": "Gómez"
  },
  "startDate": null,
  "endDate": null,
  "createdDate": "2025-04-02T11:00:00.000Z",
  "description": null,
  "metadata": null,
  "approvedDate": null,
  "provider": null,
  "service": {
    "id": 10,
    "name": "Instalación"
  },
  "address": null,
  "lead": null,
  "responsibleUser": null,
  "creatorUser": null,
  "shoppingCarts": [],
  "notes": [],
  "attachments": [],
  "dynamicFields": []
}

Response Fields

FieldTypeDescription
idnumberSodtrack project id.
referencestringnull
namestringProject name.
statusstringProject status. One of: "created", "searching_main_contractor", "approved", "in_execution", "done", "cancelled".
customerobjectnull
startDatestringnull
endDatestringnull
createdDatestringProject creation timestamp.
descriptionstringnull
metadatastringnull
approvedDatestringnull
providerobjectnull
serviceobjectnull
addressobjectnull
leadobjectnull
responsibleUserobjectnull
creatorUserobjectnull
shoppingCartsarrayShopping carts of the project (see Shopping cart). Empty when the project has none.
notesarrayNotes of the project (see Note). Empty when there are none.
attachmentsarrayFiles attached to the project, newest first (see Attachment). Empty when there are none.
dynamicFieldsarrayDynamic field values loaded on the project (see Dynamic field). Empty when there are none.

User (customer, responsibleUser, creatorUser)

FieldTypeDescription
idnumberSodtrack user id.
referencestringnull
namestringnull
lastnamestringnull

Provider (provider)

FieldTypeDescription
idnumberProvider id. When the provider belongs to a company, this is the company id.
referencestringnull
namestringProvider first name or company name.
lastnamestringProvider last name.
emailstringProvider email.
phonestringnull
identificationNumberstringnull
assignedToobjectnull

Address (address)

FieldTypeDescription
formattedAddressstringFull address.
coordinatesobjectnull

Shopping cart (shoppingCarts[])

FieldTypeDescription
idnumberSodtrack shopping cart id.
referencestringnull
statusstringPayment status. One of: "active", "payment_in_process", "partially_paid", "paid", "refunded", "cancelled".
operationalStatusstringOperational status. One of: "created", "approved", "in_execution", "done", "cancelled".
stageNamestringnull
finalPricenumberFinal price of the shopping cart.
finalCostnumberFinal cost of the shopping cart.
currencyobjectnull
createdDatestringShopping cart creation timestamp.
bookingsarrayBookings of the shopping cart, newest first. Each item has the same structure as a booking returned by Get bookings. Empty when the shopping cart has no bookings.

Note (notes[])

FieldTypeDescription
idnumberNote id.
notestringNote text.
referencestringnull

Attachment (attachments[])

FieldTypeDescription
idnumberAttachment id.
namestringFile name.
urlstringTemporary signed URL to download the file, valid for 24 hours.
commentstringnull
createdDatestringUpload timestamp.

Dynamic field (dynamicFields[])

FieldTypeDescription
idnumberValue id.
fieldIdnumbernull
labelstringnull
typestringnull
valuestringLoaded value.

Error Responses

HTTP StatusErrorDescription
400 Bad RequestValidation failed (numeric string is expected)projectId is not an integer.
401 Unauthorized—API key missing or invalid, or the request does not come from an authorized network.
403 Forbidden—The request origin is not allowed.
404 Not FoundPROJECT_NOT_FOUNDNo project matches projectId, or the project was deleted.
500 Internal Server Error—Unexpected server error. Contact Sodtrack support.

Business Rules & Constraints

Provider

When the main provider of the project belongs to a company, provider describes the company and assignedTo carries the person actually assigned. For an independent provider, provider describes that provider and assignedTo is null.

Shopping carts and bookings

  • shoppingCarts lists every shopping cart of the project, each with all its bookings.
  • Each booking is returned with the same structure as Get bookings: customer, service, variant, category, address, provider, products with pricing, add-ons, incidents, alerts, notes and dynamic form fields. Use the Get bookings documentation for the meaning of each booking field.
  • Bookings inside a shopping cart are ordered from the newest to the oldest.
  • The response is not paginated: all the shopping carts and bookings of the project are returned.

Attachments

url is a temporary signed URL valid for 24 hours. Request the project again to get a new URL.

Dynamic fields

  • dynamicFields contains the values currently loaded on the project. Values that were removed are not returned.
  • label is the label stored with the value. If no label was stored, the current label of the field is returned.

Data and format

  • Timestamps use ISO 8601 (UTC).
  • Deleted projects, shopping carts, bookings, notes and attachments are not returned.