Get Project
Returns the full detail of a single project, identified by its Sodtrack id.
/api/integration/project/{projectId}Request
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
| Name | Type | Description |
|---|---|---|
projectIdrequired | string | — |
Responses
{
"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
| Field | Type | Required | Description |
|---|---|---|---|
x-api-key (header) | string | ✅ | External integration API key provided by Sodtrack. |
🔎 Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | number | ✅ | Sodtrack project id. Must be an integer. |
Example Request
Path parameter example:
projectId = 88Response Example
{
"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:
{
"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
| Field | Type | Description |
|---|---|---|
id | number | Sodtrack project id. |
reference | string | null |
name | string | Project name. |
status | string | Project status. One of: "created", "searching_main_contractor", "approved", "in_execution", "done", "cancelled". |
customer | object | null |
startDate | string | null |
endDate | string | null |
createdDate | string | Project creation timestamp. |
description | string | null |
metadata | string | null |
approvedDate | string | null |
provider | object | null |
service | object | null |
address | object | null |
lead | object | null |
responsibleUser | object | null |
creatorUser | object | null |
shoppingCarts | array | Shopping carts of the project (see Shopping cart). Empty when the project has none. |
notes | array | Notes of the project (see Note). Empty when there are none. |
attachments | array | Files attached to the project, newest first (see Attachment). Empty when there are none. |
dynamicFields | array | Dynamic field values loaded on the project (see Dynamic field). Empty when there are none. |
User (customer, responsibleUser, creatorUser)
| Field | Type | Description |
|---|---|---|
id | number | Sodtrack user id. |
reference | string | null |
name | string | null |
lastname | string | null |
Provider (provider)
| Field | Type | Description |
|---|---|---|
id | number | Provider id. When the provider belongs to a company, this is the company id. |
reference | string | null |
name | string | Provider first name or company name. |
lastname | string | Provider last name. |
email | string | Provider email. |
phone | string | null |
identificationNumber | string | null |
assignedTo | object | null |
Address (address)
| Field | Type | Description |
|---|---|---|
formattedAddress | string | Full address. |
coordinates | object | null |
Shopping cart (shoppingCarts[])
| Field | Type | Description |
|---|---|---|
id | number | Sodtrack shopping cart id. |
reference | string | null |
status | string | Payment status. One of: "active", "payment_in_process", "partially_paid", "paid", "refunded", "cancelled". |
operationalStatus | string | Operational status. One of: "created", "approved", "in_execution", "done", "cancelled". |
stageName | string | null |
finalPrice | number | Final price of the shopping cart. |
finalCost | number | Final cost of the shopping cart. |
currency | object | null |
createdDate | string | Shopping cart creation timestamp. |
bookings | array | Bookings 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[])
| Field | Type | Description |
|---|---|---|
id | number | Note id. |
note | string | Note text. |
reference | string | null |
Attachment (attachments[])
| Field | Type | Description |
|---|---|---|
id | number | Attachment id. |
name | string | File name. |
url | string | Temporary signed URL to download the file, valid for 24 hours. |
comment | string | null |
createdDate | string | Upload timestamp. |
Dynamic field (dynamicFields[])
| Field | Type | Description |
|---|---|---|
id | number | Value id. |
fieldId | number | null |
label | string | null |
type | string | null |
value | string | Loaded value. |
Error Responses
| HTTP Status | Error | Description |
|---|---|---|
400 Bad Request | Validation 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 Found | PROJECT_NOT_FOUND | No 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
shoppingCartslists 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
dynamicFieldscontains the values currently loaded on the project. Values that were removed are not returned.labelis 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.