Skip to main content

Organization API Resources

Use the organization API to schedule appointments, maintain products and companies, and check warehouse capacity through one base URL.

The examples below use acme.datadocks.com. Replace acme with your organization subdomain, and use a location your API user can access. See Authentication and Access to get started.

Available Resources

ResourceCommon OperationsLocation Required?
AppointmentsList, view, create, updateCreate only
ProductsList, view, create, update, deleteCreate only
CompaniesList, view, create, update, deleteNo
Product limitsListNo
LocationsListNo
Purchase ordersList, view, create, update, deleteNo

Listing Locations

Purpose

Retrieve the locations your API user can access. Use the returned names when making requests for products, appointments, or other location-specific resources.

HTTP Request

GET https://[organization_subdomain].datadocks.com/api/v1/locations

Query Parameters

ParameterTypeRequiredDescriptionExample
location_nameStringNoReturn a single accessible location by nameToronto

Code Example

See cURL example
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://acme.datadocks.com/api/v1/locations

Response Format

A successful request returns 200 OK with an array of locations:

[
{ "name": "Toronto", "url": "toronto-acme" },
{ "name": "Vancouver", "url": "vancouver-acme" }
]
FieldTypeDescription
nameStringDisplay name to use as location_name
urlStringLocation subdomain, such as toronto-acme

Only locations in your organization that your API user can access are included. Selecting a location without access returns 403 Forbidden. The list is not paginated.

Appointments

Purpose

Schedule deliveries and pickups at a warehouse, retrieve appointment details, or update an existing shipment.

HTTP Requests

OperationMethodPath
List appointmentsGET/api/v1/appointments
View an appointmentGET/api/v1/appointments/123
Create an appointmentPOST/api/v1/appointments
Update an appointmentPATCH or PUT/api/v1/appointments/123

Request Body

Send appointment fields inside an appointment object. Include location_name on create to choose the warehouse; updates infer it from the appointment. The warehouse's docks, yards, products, settings, and time zone apply to the appointment.

Code Example

See cURL example: create an appointment
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"appointment": {
"location_name": "Toronto",
"scheduled_at": "2026-10-01T09:00:00-04:00",
"duration": 60,
"dock_name": "Dock 1",
"carrier_name": "FastCo"
}
}' \
https://acme.datadocks.com/api/v1/appointments

Response

A successful create or update returns 200 OK with the appointment details. See the Appointments API for the full field list, filters, response examples, and cancellation instructions.

When updating packing lists, use IDs from the appointment you are changing. Appointment deletion is not supported by the API.

Products

Purpose

Keep each warehouse's product catalog synchronized with your ERP or WMS. Lists combine accessible catalogs. View and update products by ID; an optional location name narrows the lookup.

HTTP Requests

OperationMethodPath
List productsGET/api/v1/products
View a productGET/api/v1/products/123
Create a productPOST/api/v1/products
Update a productPATCH or PUT/api/v1/products/123
Delete a productDELETE/api/v1/products/123

Request Body

ParameterTypeRequiredDescriptionExample
location_nameStringOn createWarehouse where the product belongsToronto
nameStringYes on createProduct namePremium Widget
skuStringNoStock keeping unitWIDGET-001

Send these fields inside a product object.

Code Example

See cURL example: create a product
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"product": {
"location_name": "Toronto",
"name": "Premium Widget",
"sku": "WIDGET-001"
}
}' \
https://acme.datadocks.com/api/v1/products

Response

A successful create or update returns 200 OK with the product details. A successful delete returns 204 No Content. An inaccessible product ID, or an ID outside an explicit location filter, returns 404 Not Found.

Product responses include location_name in lists and in single-record, create, and update responses so you can identify the owning warehouse even when names or SKUs match across locations.

See the Products API for additional fields, name and SKU filters, and response examples.

Companies

Purpose

Maintain customer and carrier records used by your organization. Companies are shared across locations, so updating a company changes the record used throughout the organization.

HTTP Requests

OperationMethodPath
List companiesGET/api/v1/companies
View a companyGET/api/v1/companies/123
Create a companyPOST/api/v1/companies
Update a companyPATCH or PUT/api/v1/companies/123
Delete a companyDELETE/api/v1/companies/123

Request Body

Send company fields inside a company object. No location is required: authorization uses your admin membership in this organization. If you supply a location, its permissions apply, but it does not restrict companies to that warehouse.

Code Example

See cURL example: create a carrier
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"company": {
"name": "Express Logistics",
"company_type": "carrier"
}
}' \
https://acme.datadocks.com/api/v1/companies

Response

A successful create or update returns 200 OK with the company details. See the Companies API for all fields, filters, and response examples.

Product Limits

Purpose

Check the product limits at a warehouse before planning a shipment. This endpoint returns enabled limits and their overrides for the requested dates.

HTTP Request

GET https://[organization_subdomain].datadocks.com/api/v1/product_limits

Query Parameters

ParameterTypeRequiredDescriptionExample
location_nameStringNoOptional warehouse filterToronto
start_dateDateNoFirst date to include, in YYYY-MM-DD format2026-10-01
end_dateDateNoLast date to include, in YYYY-MM-DD format2026-10-07
product_nameStringNoFilter by product nameWidgets
pageIntegerNoPage number2

Code Example

See cURL example
curl -H "Authorization: Token YOUR_API_TOKEN" \
"https://acme.datadocks.com/api/v1/product_limits?location_name=Toronto&start_date=2026-10-01&end_date=2026-10-07"

Response Format

A successful request returns 200 OK with a JSON object containing a product_limits array. Without date filters, each warehouse uses its own current date through seven days later, including override selection. Explicit dates remain local calendar dates. Recurring start/end times remain local wall-clock times. See the Product Limits API for date defaults, filtering rules, and the complete response format.

Product limits are read-only through the API. Manage them in DataDocks.

Additional Routes

The organization and location APIs do not expose new or edit form actions. Retrieve existing records with GET /api/v1/[resource]/[id], create them with POST, and update them with PATCH or PUT.

Bulk uploads are available through the location API.

Help and Support

If a request fails, check the error handling guide. Confirm the location name, your API user's access, and the record ID before retrying.

For help with an integration, contact support@datadocks.com.