### GET /api/v1/Products Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of products. The response format is an array of ProductBarcode objects. ```APIDOC ## GET /api/v1/Products ### Description Retrieves a list of products. The response format is an array of ProductBarcode objects. ### Method GET ### Endpoint /api/v1/Products ### Parameters #### Query Parameters None #### Request Body None ### Response #### Success Response (200) - **products** (array) - An array of ProductBarcode objects representing the products. #### Response Example ```json [ { "barcode": "string", "productId": "string", "productName": "string" } ] ``` #### Error Responses - **401 Unauthorized**: The request lacks valid authentication credentials. - **400 Bad Request**: The request is malformed or invalid. - **404 Not Found**: The requested resource could not be found. - **500 Internal Server Error**: An unexpected error occurred on the server. ``` -------------------------------- ### GET /api/v1/Products/GetProducts Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of products, with optional filtering by brands and categories. ```APIDOC ## GET /api/v1/Products/GetProducts ### Description Retrieves a list of products, with optional filtering by brands and categories. ### Method GET ### Endpoint /api/v1/Products/GetProducts ### Parameters #### Query Parameters - **brands** (array of strings) - Optional - Filters products by the specified brand names. - **categories** (array of strings) - Optional - Filters products by the specified category names. ### Request Example ```json { "example": "No request body for GET requests." } ``` ### Response #### Success Response (200) - **(array of objects)** - A list of products matching the criteria. #### Response Example ```json { "example": "[ { \"id\": \"some-product-id\", \"name\": \"Example Product\", \"brand\": \"ExampleBrand\", \"category\": \"ExampleCategory\" } ]" } ``` #### Error Responses - **400 Bad Request**: The request was malformed or invalid. - **500 Internal Server Error**: An unexpected error occurred on the server. ``` -------------------------------- ### GET /api/v1/Products/GetProduct Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves detailed information for a specific product using its unique ID. ```APIDOC ## GET /api/v1/Products/GetProduct ### Description Fetch full details for a single product by its UUID. ### Method GET ### Endpoint /api/v1/Products/GetProduct ### Parameters #### Query Parameters - **id** (string) - Required - The unique UUID of the product ### Response #### Success Response (200) - **product** (object) - Returns a DTools.Cloud.Data.ProductDetail object #### Response Example { "id": "00000000-0000-0000-0000-000000000000", "name": "Product Name" } ``` -------------------------------- ### GET /api/v1/Clients/GetClients Source: https://dtcloudapi.d-tools.cloud/apidocs/index.html Retrieves a list of all clients associated with the D-Tools Cloud account. ```APIDOC ## GET /api/v1/Clients/GetClients ### Description Retrieves a list of all clients associated with the D-Tools Cloud account. ### Method GET ### Endpoint /api/v1/Clients/GetClients ### Parameters None ### Request Example GET /api/v1/Clients/GetClients ### Response #### Success Response (200) - **clients** (Array) - List of DTools.Cloud.Data.ClientLite objects #### Response Example { "clients": [ { "id": "string", "name": "string" } ] } ``` -------------------------------- ### GET /api/v1/Projects/GetProject Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves details for a specific project by its ID. ```APIDOC ## GET /api/v1/Projects/GetProject ### Description Retrieves details for a specific project using its unique identifier. ### Method GET ### Endpoint /api/v1/Projects/GetProject ### Parameters #### Query Parameters - **id** (string, uuid) - Required - The unique identifier of the project to retrieve. ### Response #### Success Response (200) - **ProjectDetail** (object) - Contains the detailed information of the project. #### Error Response - **400** - Bad Request: Indicates an issue with the request parameters. - **401** - Unauthorized: Authentication is required or has failed. - **404** - Not Found: The specified project ID does not exist. - **500** - Internal Server Error: An unexpected error occurred on the server. ``` -------------------------------- ### GET /api/v1/Clients/GetClients Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of clients with various filtering, sorting, and pagination options. ```APIDOC ## GET /api/v1/Clients/GetClients ### Description Retrieves a list of clients. Supports filtering by client types, owners, creation and modification dates, and includes options for pagination and searching. ### Method GET ### Endpoint /api/v1/Clients/GetClients ### Parameters #### Query Parameters - **types** (array[string]) - Optional - Filters clients by their types. - **owners** (array[string]) - Optional - Filters clients by their owners. - **fromCreatedDate** (string) - Optional - Filters clients created on or after this date (ISO 8601 format). - **toCreatedDate** (string) - Optional - Filters clients created on or before this date (ISO 8601 format). - **fromModifiedDate** (string) - Optional - Filters clients modified on or after this date (ISO 8601 format). - **toModifiedDate** (string) - Optional - Filters clients modified on or before this date (ISO 8601 format). - **includeInactive** (boolean) - Optional - Includes inactive clients in the results. - **includeTotalCount** (boolean) - Optional - Includes the total count of clients matching the filters. - **search** (string) - Optional - Performs a search query against client data. - **sort** (string) - Optional - Specifies the sorting order for the results. - **page** (integer) - Optional - The page number for pagination (defaults to 1). - **pageSize** (integer) - Optional - The number of items per page (defaults to 20). ### Response #### Success Response (200) - **clients** (array[object]) - A list of client objects. - **totalCount** (integer) - The total number of clients matching the query (if `includeTotalCount` is true). #### Response Example ```json { "clients": [ { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "name": "Example Client", "type": "Customer", "owner": "John Doe", "createdDate": "2023-01-01T10:00:00Z", "modifiedDate": "2023-10-26T14:30:00Z", "isActive": true } ], "totalCount": 100 } ``` #### Error Response - **400** - Bad Request: The request was malformed or invalid. - **401** - Unauthorized: Authentication credentials are required or invalid. - **500** - Internal Server Error: An unexpected error occurred on the server. ``` -------------------------------- ### GET /api/v1/Opportunities/GetOpportunities Source: https://dtcloudapi.d-tools.cloud/apidocs/index.html Retrieves a list of all sales opportunities within the D-Tools Cloud application. ```APIDOC ## GET /api/v1/Opportunities/GetOpportunities ### Description Retrieves a list of all sales opportunities within the D-Tools Cloud application. ### Method GET ### Endpoint /api/v1/Opportunities/GetOpportunities ### Parameters None ### Request Example GET /api/v1/Opportunities/GetOpportunities ### Response #### Success Response (200) - **opportunities** (Array) - List of DTools.Cloud.Data.OpportunityLite objects #### Response Example { "opportunities": [ { "id": "string", "title": "string", "status": "string" } ] } ``` -------------------------------- ### GET /api/v1/Clients/GetClient Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves details for a specific client by its ID. ```APIDOC ## GET /api/v1/Clients/GetClient ### Description Retrieves detailed information for a specific client using its unique identifier. ### Method GET ### Endpoint /api/v1/Clients/GetClient ### Parameters #### Query Parameters - **id** (string) - Required - The unique identifier (UUID) of the client to retrieve. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the client. - **name** (string) - The name of the client. - **type** (string) - The type of the client. - **owner** (string) - The owner of the client. - **createdDate** (string) - The date and time the client was created (ISO 8601 format). - **modifiedDate** (string) - The date and time the client was last modified (ISO 8601 format). - **isActive** (boolean) - Indicates if the client is active. #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "name": "Example Client", "type": "Customer", "owner": "John Doe", "createdDate": "2023-01-01T10:00:00Z", "modifiedDate": "2023-10-26T14:30:00Z", "isActive": true } ``` #### Error Response - **401** - Unauthorized: Authentication credentials are required or invalid. ``` -------------------------------- ### GET /api/v1/Products Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a paginated list of products based on various filter criteria such as date ranges, supplier, and search terms. ```APIDOC ## GET /api/v1/Products ### Description Retrieves a list of products with support for filtering, sorting, and pagination. ### Method GET ### Endpoint /api/v1/Products ### Parameters #### Query Parameters - **suppliers** (array) - Optional - List of supplier names to filter by - **fromCreatedDate** (string) - Optional - Filter products created on or after this date (ISO 8601) - **toCreatedDate** (string) - Optional - Filter products created on or before this date (ISO 8601) - **fromModifiedDate** (string) - Optional - Filter products modified on or after this date (ISO 8601) - **toModifiedDate** (string) - Optional - Filter products modified on or before this date (ISO 8601) - **stockItemsOnly** (boolean) - Optional - If true, returns only stock items - **includeInactive** (boolean) - Optional - If true, includes inactive products - **includeTotalCount** (boolean) - Optional - If true, returns the total count of records - **search** (string) - Optional - Search term for product filtering - **sort** (string) - Optional - Sorting criteria - **page** (integer) - Optional - Page number (default: 1) - **pageSize** (integer) - Optional - Number of items per page (default: 20) ### Response #### Success Response (200) - **result** (object) - Returns a DTools.Cloud.Data.GetProductsResult object #### Response Example { "products": [], "totalCount": 0 } ``` -------------------------------- ### GET /api/v1/Files/GetFile Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves details for a specific file using its unique identifier. ```APIDOC ## GET /api/v1/Files/GetFile ### Description Retrieves details for a specific file using its unique identifier. ### Method GET ### Endpoint /api/v1/Files/GetFile ### Parameters #### Query Parameters - **id** (string (uuid)) - Required - The unique identifier of the file. ### Response #### Success Response (200) - **DTools.Cloud.Data.FileDetail** - An object containing the file's details. #### Response Example ```json { "fileDetail": "..." } ``` #### Error Responses - **401** - Unauthorized: The request lacks valid authentication credentials. - **400** - Bad Request: The request was malformed or invalid. - **404** - Not Found: The specified file could not be found. - **500** - Internal Server Error: An unexpected error occurred on the server. ``` -------------------------------- ### GET /websites/dtcloudapi_d-tools_cloud/api/projects/{projectId}/time-entries Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of time entries for a specific project. Supports filtering and pagination. ```APIDOC ## GET /websites/dtcloudapi_d-tools_cloud/api/projects/{projectId}/time-entries ### Description Retrieves a list of time entries associated with a specific project ID. This endpoint allows for fetching detailed time tracking information for a given project. ### Method GET ### Endpoint `/websites/dtcloudapi_d-tools_cloud/api/projects/{projectId}/time-entries` ### Parameters #### Path Parameters - **projectId** (string) - Required - The unique identifier of the project. #### Query Parameters - **filter** (string) - Optional - Allows filtering the time entries based on specified criteria. - **skip** (integer) - Optional - The number of records to skip for pagination. - **take** (integer) - Optional - The maximum number of records to return per page. ### Request Example ``` GET /websites/dtcloudapi_d-tools_cloud/api/projects/a1b2c3d4-e5f6-7890-1234-567890abcdef/time-entries?filter=completed&skip=0&take=10 ``` ### Response #### Success Response (200) - **result** (DTools.Cloud.Data.GetTimeEntriesResult) - An object containing the list of time entries. #### Response Example ```json { "result": { "timeEntries": [ { "id": "00000000-0000-0000-0000-000000000000", "projectId": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "taskId": "00000000-0000-0000-0000-000000000000", "userId": "00000000-0000-0000-0000-000000000000", "userName": "John Doe", "date": "2023-10-27T00:00:00Z", "duration": 3600, "notes": "Worked on project tasks.", "creationDate": "2023-10-27T10:00:00Z", "lastUpdateDate": "2023-10-27T10:00:00Z" } ], "totalCount": 1 } } ``` #### Error Response (400) - **description**: Bad Request - **content**: application/json or text/json schema: Microsoft.AspNetCore.Mvc.ProblemDetails #### Error Response (401) - **description**: Unauthorized - **content**: application/json or text/json schema: Microsoft.AspNetCore.Mvc.ProblemDetails #### Error Response (500) - **description**: Internal Server Error ``` -------------------------------- ### GET /api/v1/Opportunities/GetOpportunities Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of opportunities with flexible filtering and pagination options. You can filter by opportunity type, client, stage, priority, owner, and date ranges for estimated/actual close dates, creation, and modification dates. It also supports full-text search and sorting. ```APIDOC ## GET /api/v1/Opportunities/GetOpportunities ### Description Retrieves a list of opportunities with flexible filtering and pagination options. You can filter by opportunity type, client, stage, priority, owner, and date ranges for estimated/actual close dates, creation, and modification dates. It also supports full-text search and sorting. ### Method GET ### Endpoint /api/v1/Opportunities/GetOpportunities ### Parameters #### Query Parameters - **types** (array[string]) - Optional - Filters opportunities by their types. - **clientIds** (array[string, format: uuid]) - Optional - Filters opportunities by client IDs. - **stageGroups** (array[string]) - Optional - Filters opportunities by stage groups. - **stages** (array[string]) - Optional - Filters opportunities by their stages. - **priorities** (array[string]) - Optional - Filters opportunities by their priorities. - **owners** (array[string]) - Optional - Filters opportunities by their owners. - **fromEstimatedCloseDate** (string, format: date-time) - Optional - Filters opportunities from a specific estimated close date. - **toEstimatedCloseDate** (string, format: date-time) - Optional - Filters opportunities up to a specific estimated close date. - **fromActualCloseDate** (string, format: date-time) - Optional - Filters opportunities from a specific actual close date. - **toActualCloseDate** (string, format: date-time) - Optional - Filters opportunities up to a specific actual close date. - **fromCreatedDate** (string, format: date-time) - Optional - Filters opportunities from a specific creation date. - **toCreatedDate** (string, format: date-time) - Optional - Filters opportunities up to a specific creation date. - **fromModifiedDate** (string, format: date-time) - Optional - Filters opportunities from a specific modification date. - **toModifiedDate** (string, format: date-time) - Optional - Filters opportunities up to a specific modification date. - **includeArchived** (boolean) - Optional - Whether to include archived opportunities. - **includeTotalCount** (boolean) - Optional - Whether to include the total count of opportunities. - **search** (string) - Optional - Performs a full-text search on opportunities. - **sort** (string) - Optional - Specifies the sorting order for the results. - **page** (integer, format: int32) - Optional - The page number for pagination (default: 1). - **pageSize** (integer, format: int32) - Optional - The number of items per page (default: 20). ### Response #### Success Response (200) - **opportunities** (array) - A list of opportunity objects. - **totalCount** (integer) - The total number of opportunities found (if `includeTotalCount` is true). #### Response Example ```json { "opportunities": [ { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "name": "Example Opportunity", "type": "New Business", "clientId": "f0e9d8c7-b6a5-4321-0987-654321fedcba", "stage": "Proposal", "priority": "High", "owner": "John Doe", "estimatedCloseDate": "2024-12-31T00:00:00Z", "actualCloseDate": null, "createdDate": "2024-01-01T10:00:00Z", "modifiedDate": "2024-01-15T11:30:00Z" } ], "totalCount": 100 } ``` #### Error Response (400) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed description of the error. - **traceId** (string) - The unique identifier for the request trace. ``` -------------------------------- ### GET /api/v1/Quotes/GetQuotes Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of quotes associated with a specific opportunity. ```APIDOC ## GET /api/v1/Quotes/GetQuotes ### Description Retrieves a list of quotes associated with a specific opportunity. ### Method GET ### Endpoint /api/v1/Quotes/GetQuotes ### Parameters #### Query Parameters - **opportunityId** (string, uuid) - Optional - The ID of the opportunity to filter quotes by. ### Response #### Success Response (200) - **quotes** (array) - A list of quote lite objects. #### Response Example { "quotes": [ { "id": "string (uuid)", "quoteNumber": "string", "quoteDate": "string (date-time)", "customerName": "string", "totalAmount": 0.0 } ] } #### Error Response (401) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed error message. ``` -------------------------------- ### GET /api/v1/PurchaseOrders/GetPurchaseOrders Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of purchase orders. Supports pagination and filtering. ```APIDOC ## GET /api/v1/PurchaseOrders/GetPurchaseOrders ### Description Retrieves a list of purchase orders. Supports pagination and filtering. ### Method GET ### Endpoint /api/v1/PurchaseOrders/GetPurchaseOrders ### Parameters #### Query Parameters - **pageNumber** (integer) - Optional - The page number to retrieve. - **pageSize** (integer) - Optional - The number of items per page. Defaults to 20. ### Response #### Success Response (200) - **purchaseOrders** (array) - A list of purchase orders. #### Response Example { "purchaseOrders": [ { "id": "string (uuid)", "orderNumber": "string", "orderDate": "string (date-time)", "supplierName": "string", "totalAmount": 0.0 } ] } #### Error Response (400) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed error message. #### Error Response (401) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed error message. ``` -------------------------------- ### GET /api/v1/Projects/GetProjects Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of projects based on various filter criteria including client IDs, project stages, dates, and search parameters. ```APIDOC ## GET /api/v1/Projects/GetProjects ### Description Retrieves a filtered list of projects from the D-Tools Cloud system. Supports pagination, sorting, and extensive filtering options. ### Method GET ### Endpoint /api/v1/Projects/GetProjects ### Parameters #### Query Parameters - **clientIds** (array of uuid) - Optional - List of client IDs to filter by. - **stageGroups** (array of string) - Optional - Filter by project stage groups. - **stages** (array of string) - Optional - Filter by specific project stages. - **priorities** (array of string) - Optional - Filter by project priority levels. - **projectManagers** (array of string) - Optional - Filter by assigned project managers. - **fromCompletedDate** (date-time) - Optional - Start date for project completion filter. - **toCompletedDate** (date-time) - Optional - End date for project completion filter. - **fromCreatedDate** (date-time) - Optional - Start date for project creation filter. - **toCreatedDate** (date-time) - Optional - End date for project creation filter. - **fromModifiedDate** (date-time) - Optional - Start date for project modification filter. - **toModifiedDate** (date-time) - Optional - End date for project modification filter. - **includeArchived** (boolean) - Optional - Include archived projects in results. - **includeTotalCount** (boolean) - Optional - Include total record count in response. - **search** (string) - Optional - Search term for project names or details. - **sort** (string) - Optional - Sorting criteria. - **page** (integer) - Optional - Page number (default: 1). - **pageSize** (integer) - Optional - Number of items per page (default: 20). ### Request Example GET /api/v1/Projects/GetProjects?page=1&pageSize=20&includeArchived=false ### Response #### Success Response (200) - **GetProjectsResult** (object) - The collection of projects matching the criteria. #### Response Example { "projects": [], "totalCount": 0 } ``` -------------------------------- ### GET /api/v1/ServiceContracts/GetServiceContracts Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of service contracts filtered by client, project, or date ranges. ```APIDOC ## GET /api/v1/ServiceContracts/GetServiceContracts ### Description Fetches service contracts based on optional filters including client IDs, project IDs, and start/end date ranges. ### Method GET ### Endpoint /api/v1/ServiceContracts/GetServiceContracts ### Parameters #### Query Parameters - **clientIds** (array[uuid]) - Optional - List of client IDs to filter by. - **projectIds** (array[uuid]) - Optional - List of project IDs to filter by. - **fromStartDate** (date-time) - Optional - Filter contracts starting on or after this date. - **toStartDate** (date-time) - Optional - Filter contracts starting on or before this date. - **fromEndDate** (date-time) - Optional - Filter contracts ending on or after this date. - **toEndDate** (date-time) - Optional - Filter contracts ending on or before this date. ### Response #### Success Response (200) - **contracts** (array) - A list of service contract objects. #### Response Example [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "contractName": "Annual Maintenance" } ] ``` -------------------------------- ### GET /api/v1/TimeEntries/GetTimeEntries Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of time entries based on various filtering and pagination parameters. ```APIDOC ## GET /api/v1/TimeEntries/GetTimeEntries ### Description Retrieves a list of time entries. Supports filtering by types, resources, dates, client IDs, project IDs, service call IDs, labor types, overtime status, archived status, and search terms. Also supports pagination and sorting. ### Method GET ### Endpoint /api/v1/TimeEntries/GetTimeEntries ### Parameters #### Query Parameters - **types** (array[string]) - Optional - Filters time entries by type. - **resources** (array[string]) - Optional - Filters time entries by resource. - **fromDate** (string) - Optional - Filters time entries from a specific date (date-time format). - **toDate** (string) - Optional - Filters time entries up to a specific date (date-time format). - **clientIds** (array[string]) - Optional - Filters time entries by client IDs (UUID format). - **projectIds** (array[string]) - Optional - Filters time entries by project IDs (UUID format). - **serviceCallIds** (array[string]) - Optional - Filters time entries by service call IDs (UUID format). - **laborTypes** (array[string]) - Optional - Filters time entries by labor types. - **overtimesOnly** (boolean) - Optional - Filters to include only overtime entries. - **includeArchived** (boolean) - Optional - Includes archived time entries in the results. - **includeTotalCount** (boolean) - Optional - Includes the total count of matching records in the response. - **search** (string) - Optional - A search term to filter time entries. - **sort** (string) - Optional - Specifies the sorting order for the results. - **page** (integer) - Optional - The page number for pagination (defaults to 1). - **pageSize** (integer) - Optional - The number of items per page (defaults to 20). ### Response #### Success Response (200) - **items** (array) - A list of time entry objects. - **totalCount** (integer) - The total number of time entries matching the query (if `includeTotalCount` is true). #### Response Example ```json { "items": [ { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "date": "2023-10-27T10:00:00Z", "resourceId": "resource-1", "resourceName": "John Doe", "clientId": "client-1", "clientName": "Acme Corp", "projectId": "project-1", "projectName": "Website Redesign", "serviceCallId": "service-call-1", "laborTypeId": "labor-type-1", "laborTypeName": "Development", "description": "Worked on user authentication module.", "durationMinutes": 120, "isOvertime": false } ], "totalCount": 50 } ``` #### Error Response (400, 404, 500) - **type** (string) - The type of error. - **title** (string) - A short, human-readable summary of the error. - **status** (integer) - The HTTP status code. - **detail** (string) - A human-readable explanation specific to this occurrence of the problem. - **traceId** (string) - A unique identifier for the request trace. ``` -------------------------------- ### GET /api/v1/PurchaseOrders/GetPurchaseOrders Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of purchase orders based on provided query parameters such as date ranges, project IDs, and status filters. ```APIDOC ## GET /api/v1/PurchaseOrders/GetPurchaseOrders ### Description Retrieves a filtered list of purchase orders from the D-Tools Cloud system. ### Method GET ### Endpoint /api/v1/PurchaseOrders/GetPurchaseOrders ### Parameters #### Query Parameters - **suppliers** (array of strings) - Optional - List of supplier names to filter by. - **projectIds** (array of UUIDs) - Optional - List of project IDs to filter by. - **statuses** (array of strings) - Optional - List of order statuses to filter by. - **fromOrderedDate** (date-time) - Optional - Start date for ordered date filter. - **toOrderedDate** (date-time) - Optional - End date for ordered date filter. - **fromReceivedDate** (date-time) - Optional - Start date for received date filter. - **toReceivedDate** (date-time) - Optional - End date for received date filter. - **fromCreatedDate** (date-time) - Optional - Start date for created date filter. - **toCreatedDate** (date-time) - Optional - End date for created date filter. - **fromModifiedDate** (date-time) - Optional - Start date for modified date filter. - **toModifiedDate** (date-time) - Optional - End date for modified date filter. - **includeArchived** (boolean) - Optional - Whether to include archived orders. - **includeTotalCount** (boolean) - Optional - Whether to return the total count of records. - **search** (string) - Optional - Search term for filtering results. - **sort** (string) - Optional - Sorting criteria. - **page** (integer) - Optional - Page number for pagination (default: 1). ### Request Example GET /api/v1/PurchaseOrders/GetPurchaseOrders?page=1&includeTotalCount=true ### Response #### Success Response (200) - **data** (array) - List of purchase order objects. #### Response Example { "data": [], "totalCount": 0 } ``` -------------------------------- ### GET /api/v1/ChangeOrders/GetChangeOrders Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves a list of change orders for a specified project. This endpoint allows fetching all change orders associated with a particular project ID. ```APIDOC ## GET /api/v1/ChangeOrders/GetChangeOrders ### Description Retrieves a list of change orders for a specified project. This endpoint allows fetching all change orders associated with a particular project ID. ### Method GET ### Endpoint /api/v1/ChangeOrders/GetChangeOrders ### Parameters #### Query Parameters - **projectId** (string) - Required - The unique identifier (UUID) of the project for which to retrieve change orders. ### Request Example ``` GET /api/v1/ChangeOrders/GetChangeOrders?projectId=a1b2c3d4-e5f6-7890-1234-567890abcdef ``` ### Response #### Success Response (200) - **Array of ChangeOrderLite objects** - A list containing summary details of each change order. #### Response Example ```json [ { "id": "09876543-21fe-dcba-0987-654321fedcba", "projectId": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "changeOrderNumber": "CO-001", "name": "Additional Lighting Fixtures", "status": "Approved", "dateCreated": "2023-10-27T10:00:00Z" } ] ``` #### Error Response (401, 400, 500) - **ProblemDetails object** - Details about the error encountered (e.g., Unauthorized, Bad Request, Internal Server Error). ``` -------------------------------- ### GET /api/v1/Opportunities/GetOpportunity Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves details for a specific opportunity by its ID. Supports various error responses including unauthorized access, bad requests, and not found errors. ```APIDOC ## GET /api/v1/Opportunities/GetOpportunity ### Description Retrieves details for a specific opportunity using its unique identifier. ### Method GET ### Endpoint /api/v1/Opportunities/GetOpportunity ### Parameters #### Query Parameters - **id** (string, uuid) - Required - The unique identifier of the opportunity. ### Response #### Success Response (200) - **OpportunityDetail** (object) - Contains the detailed information of the opportunity. #### Error Responses - **401** - Unauthorized: Indicates that the request lacks valid authentication credentials. - **400** - Bad Request: The request was malformed or invalid. - **404** - Not Found: The specified opportunity could not be found. - **500** - Internal Server Error: An unexpected error occurred on the server. ``` -------------------------------- ### POST /api/v1/Clients/CreateClient Source: https://dtcloudapi.d-tools.cloud/apidocs/index.html Creates a new client record in the D-Tools Cloud system. ```APIDOC ## POST /api/v1/Clients/CreateClient ### Description Creates a new client record in the D-Tools Cloud system. ### Method POST ### Endpoint /api/v1/Clients/CreateClient ### Request Body - **client** (DTools.Cloud.Data.Client) - Required - The client object to create ### Request Example { "name": "New Client Name", "email": "contact@example.com" } ### Response #### Success Response (200) - **id** (string) - The ID of the newly created client #### Response Example { "id": "client-123-uuid" } ``` -------------------------------- ### Project Data Structures Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json This section details the data structures used for representing projects, including discounts, items, adjustments, tax settings, taxes, payment terms, and payments. ```APIDOC ## Project Data Structures ### Description This section details the data structures used for representing projects, including discounts, items, adjustments, tax settings, taxes, payment terms, and payments. ### Schemas #### DTools.Cloud.Data.Project Represents a project with various associated data. **Properties:** - **length** (DTools.Cloud.Data.ProjectLength) - Optional - Project length details. - **discounts** (array of DTools.Cloud.Data.ProjectDiscount) - Optional - List of project discounts. - **items** (array of DTools.Cloud.Data.ProjectItem) - Optional - List of project items. - **adjustments** (array of DTools.Cloud.Data.ProjectAdjustment) - Optional - List of project adjustments. - **taxSettings** (DTools.Cloud.Data.ProjectTaxSettings) - Project tax settings. - **taxes** (array of DTools.Cloud.Data.ProjectTax) - Optional - List of project taxes. - **paymentTerms** (array of DTools.Cloud.Data.ProjectPaymentTerm) - Optional - List of project payment terms. - **payments** (array of DTools.Cloud.Data.ProjectPayment) - Optional - List of project payments. - **changeOrderIds** (array of string (uuid)) - Optional - List of change order IDs. #### DTools.Cloud.Data.ProjectDiscount Represents a discount applied to a project. **Properties:** - **id** (integer) - Discount identifier. - **name** (string) - Optional - Name of the discount. - **isRange** (boolean) - Indicates if the discount is a range. - **isPercent** (boolean) - Indicates if the discount is a percentage. - **percent** (number (double)) - Optional - The discount percentage. - **maximumPercent** (number (double)) - Optional - The maximum discount percentage. - **amount** (number (double)) - Optional - The discount amount. - **maximumAmount** (number (double)) - Optional - The maximum discount amount. #### DTools.Cloud.Data.ProjectItem Represents an item within a project. **Properties:** - **id** (integer) - Item identifier. - **catalogId** (string (uuid)) - The ID of the catalog item. - **type** (string) - Optional - Type of the item (readOnly). - **allowanceType** (string) - Optional - Allowance type of the item (readOnly). - **packageType** (string) - Optional - Package type of the item (readOnly). - **laborTypeId** (integer) - Optional - Labor type ID for the item. - **name** (string) - Optional - Name of the item. - **brand** (string) - Optional - Brand of the item. - **model** (string) - Optional - Model of the item. - **partNumber** (string) - Optional - Part number of the item. - **shortDescription** (string) - Optional - Short description of the item. - **description** (string) - Optional - Description of the item. - **category** (string) - Optional - Category of the item. - **imageUrl** (string) - Optional - URL of the item's image. - **quantity** (integer) - Quantity of the item. - **isLengthBased** (boolean) - Indicates if the item is length-based. - **lengthId** (integer) - Optional - Length ID for the item. - **length** (integer) - Optional - Length of the item. - **isIgnorePackageItemLaborItems** (boolean) - Indicates if package item labor items should be ignored. - **msrp** (number (double)) - Optional - Manufacturer's Suggested Retail Price. - **unitCost** (number (double)) - Optional - Unit cost of the item. ``` -------------------------------- ### GET /api/v1/PurchaseOrders/GetPurchaseOrder Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves details for a specific purchase order by its ID. ```APIDOC ## GET /api/v1/PurchaseOrders/GetPurchaseOrder ### Description Retrieves details for a specific purchase order by its ID. ### Method GET ### Endpoint /api/v1/PurchaseOrders/GetPurchaseOrder ### Parameters #### Query Parameters - **id** (string, uuid) - Required - The unique identifier of the purchase order. ### Response #### Success Response (200) - **id** (string, uuid) - The purchase order ID. - **orderNumber** (string) - The purchase order number. - **orderDate** (string, date-time) - The date the order was placed. - **supplierName** (string) - The name of the supplier. - **totalAmount** (number) - The total amount of the purchase order. - **items** (array) - A list of items in the purchase order. #### Response Example { "id": "123e4567-e89b-12d3-a456-426614174000", "orderNumber": "PO-2023-001", "orderDate": "2023-10-27T10:00:00Z", "supplierName": "Example Supplier", "totalAmount": 1500.50, "items": [ { "productId": "string", "productName": "string", "quantity": 0, "unitPrice": 0.0, "lineTotal": 0.0 } ] } #### Error Response (400) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed error message. #### Error Response (401) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed error message. #### Error Response (404) - **title** (string) - The error title. - **status** (integer) - The HTTP status code. - **detail** (string) - A detailed error message. ``` -------------------------------- ### POST /api/v1/Opportunities/CreateOpportunity Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Creates a new opportunity in the DTools Cloud system. Accepts opportunity details in various JSON formats and returns the ID of the newly created opportunity. ```APIDOC ## POST /api/v1/Opportunities/CreateOpportunity ### Description Creates a new opportunity within the DTools Cloud system. ### Method POST ### Endpoint /api/v1/Opportunities/CreateOpportunity ### Parameters #### Request Body - **NewOpportunity** (object) - Required - An object containing the details for the new opportunity. ### Request Example ```json { "example": "Request body for creating a new opportunity" } ``` ### Response #### Success Response (200) - **string** (uuid) - The unique identifier (UUID) of the newly created opportunity. #### Error Responses - **401** - Unauthorized: Indicates that the request lacks valid authentication credentials. ``` -------------------------------- ### Product Accessory Data Model Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Defines the structure for product accessories, including item details, quantity, and pricing information. ```APIDOC ## Product Accessory Data Model ### Description Represents an accessory item associated with a product. This model specifies the accessory's identifier, name, quantity, labor details, and whether it is billable. ### Properties - **itemId** (string, uuid) - The unique identifier for the accessory item. - **type** (string, optional, readOnly) - The type or category of the accessory. - **name** (string, optional) - The name of the accessory. - **quantity** (integer, int32) - The number of units of this accessory. - **laborTime** (integer, int32, optional) - The time required for labor related to this accessory. - **laborPrice** (number, double, optional) - The cost of labor for this accessory. - **includeOption** (string, optional, readOnly) - Indicates if this accessory is part of an included option. - **isBillable** (boolean) - Specifies whether the accessory is billable to the customer. ``` -------------------------------- ### GET /api/v1/Quotes/GetQuote Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Retrieves detailed information for a specific quote using its unique identifier. ```APIDOC ## GET /api/v1/Quotes/GetQuote ### Description Retrieves the full details of a quote based on the provided UUID. ### Method GET ### Endpoint /api/v1/Quotes/GetQuote ### Parameters #### Query Parameters - **id** (string/uuid) - Required - The unique identifier of the quote to retrieve. ### Response #### Success Response (200) - **QuoteDetail** (object) - The detailed quote object. #### Response Example { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "name": "Example Quote" } ``` -------------------------------- ### POST /api/v1/Clients/CreateClient Source: https://dtcloudapi.d-tools.cloud/swagger/v1/swagger.json Creates a new client in the DTools Cloud system. This endpoint accepts client data in various JSON formats and returns the unique identifier (UUID) of the newly created client upon success. ```APIDOC ## POST /api/v1/Clients/CreateClient ### Description Creates a new client in the DTools Cloud system. This endpoint accepts client data in various JSON formats and returns the unique identifier (UUID) of the newly created client upon success. ### Method POST ### Endpoint /api/v1/Clients/CreateClient ### Parameters #### Request Body - **client** (DTools.Cloud.Data.Client) - Required - The client object to be created. ### Request Example ```json { "client": { "name": "Example Client", "contactEmail": "contact@example.com" // ... other client properties } } ``` ### Response #### Success Response (200) - **clientId** (string) - The unique identifier (UUID) of the created client. #### Response Example ```json "a1b2c3d4-e5f6-7890-1234-567890abcdef" ``` #### Error Responses - **400 Bad Request**: The request body is invalid or missing required fields. - **401 Unauthorized**: The request lacks valid authentication credentials. - **409 Conflict**: A client with the provided identifier already exists. - **500 Internal Server Error**: An unexpected error occurred on the server. ```