Department of Cooperative
Development (DoCD)
Ministry of Agriculture, Livestock & Food Security
Cape Point, Bakau, The Gambia

Getting started

The DoCD Partner API is a gated JSON API at /api/v1/. It is not open public data — you need an API key issued by the Department of Cooperative Development after your access request is approved. Partner self-serve requests are limited to read scopes (resource:read). Write, update, and delete scopes (resource:write, :update, :delete) are assigned only by administrators for DoCD management apps.

  1. Create a Partner API account (Sign up) and verify your email.
  2. Sign in and request a Development or Production key from your account.
  3. When approved, copy your key from the account page (keys are never emailed).
  4. Call the API with your key. Use this page or the interactive OpenAPI UI for samples.

OpenAPI interactive docs Partner endpoints require a valid API key; Public CMS does not.

For published portal content (news, policies, publications, galleries, testimonials), use the Public CMS API at /api/v1/public-cms/ — no API key or account required.

Authentication

Send your key on every request using either header:

Bearer token
Authorization: Bearer YOUR_API_KEY
API key header
X-API-Key: YOUR_API_KEY
curl — discover resources
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/"
Python — discover resources
import requests

url = "https://www.docd-dawda.com/api/v1/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Keys look like docd_…. Store them like passwords. After approval, copy your key from your Partner API account — it is never emailed.

Scopes

Each client is granted only the scopes it needs. Without a scope, the matching endpoint returns HTTP 403. The special scope pii:read unlocks phone, email, address, and similar identity fields where applicable.

Partner key requests may only ask for the read scopes listed below. Administrators can also grant resource:write (POST), resource:update (PUT/PATCH), and resource:delete (DELETE) for DoCD offline management apps.

Scope Description
cooperatives:read Cooperatives (read)
members:read Members (read)
executives:read Executives (read)
farmers:read Private Individuals (read)
input_dealers:read Input Dealers (read)
input_distributions:read Input Distributions (read)
compliance:read Compliance (read)
certificates:read Cooperative Certificates (read)
inquiries:read Received Inquiries (read)
employees:read Employees (read)
employee_certificates:read Employee Certificates (read)
audit:read Audit Logs (read)
regions:read Regions (read)
districts:read Districts (read)
towns:read Towns (read)
communities:read Communities (read)
cooperative_types:read Cooperative Types (read)
value_chains:read Value Chains (read)
services:read Services (read)
cooperative_documents:read Cooperative Documents (read)
cooperative_mergers:read Cooperative Mergers (read)
input_types:read Input Types (read)
funding_sources:read Funding Sources (read)
input_dealer_documents:read Input Dealer Documents (read)
input_dealer_certificates:read Input Dealer Certificates (read)
distribution_limits:read Distribution Limits (read)
inventory_movements:read Inventory Movements (read)
input_impacts:read Input Impacts (read)
farmer_distributions:read Farmer Distributions (read)
compliance_alerts:read Compliance Alerts (read)
positions:read Positions (read)
departments:read Departments (read)
employee_identity_documents:read Employee Identity Documents (read)
employee_approval_requests:read Employee Approval Requests (read)
projects:read Projects (read)
activities:read Activities (read)
milestones:read Milestones (read)
inquiry_replies:read Inquiry Replies (read)
users:read Users (read)
roles:read Roles (read)
site_visits:read Site Visits (read)
user_sessions:read User Sessions (read)
navigation_paths:read Navigation Paths (read)
reports:read Reports (read)
pii:read PII fields (phone, email, address, identity)

Partner endpoints

All list endpoints return paginated JSON: count, next, previous, results. Default page size is 50 (max 200). Replace YOUR_API_KEY and host as needed.

Cooperatives

GET /api/v1/cooperatives/ GET /api/v1/cooperatives/{id}/ cooperatives:read

Registered cooperatives (excludes merged records on list by default).

Filters: region, district, status, type, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperatives/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/cooperatives/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperatives/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/cooperatives/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Members

GET /api/v1/members/ GET /api/v1/members/{id}/ members:read May include PII

Cooperative members. Phone/email/address require pii:read.

Filters: cooperative, region, is_active, gender, is_youth, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/members/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/members/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/members/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/members/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Executives

GET /api/v1/executives/ GET /api/v1/executives/{id}/ executives:read May include PII

Executive / leadership positions.

Filters: cooperative, is_current, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/executives/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/executives/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/executives/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/executives/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Private Individuals

GET /api/v1/farmers/ GET /api/v1/farmers/{id}/ farmers:read May include PII

Private individual (farmer) registry. Contact fields require pii:read.

Filters: cooperative, region, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/farmers/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/farmers/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/farmers/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/farmers/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Input Dealers

GET /api/v1/input-dealers/ GET /api/v1/input-dealers/{id}/ input_dealers:read May include PII

Input dealers registry. Contact fields require pii:read.

Filters: region, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-dealers/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/input-dealers/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-dealers/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/input-dealers/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Input Distributions

GET /api/v1/input-distributions/ GET /api/v1/input-distributions/{id}/ input_distributions:read

Input distribution records.

Filters: cooperative, region, date_from, date_to.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-distributions/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/input-distributions/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-distributions/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/input-distributions/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Compliance

GET /api/v1/compliance/ GET /api/v1/compliance/{id}/ compliance:read

Compliance records.

Filters: cooperative, status, compliance_type.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/compliance/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/compliance/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/compliance/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/compliance/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Cooperative Certificates

GET /api/v1/certificates/ GET /api/v1/certificates/{id}/ certificates:read

Issued cooperative registration certificates (metadata, not PDF bytes).

Filters: cooperative, region, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/certificates/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/certificates/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/certificates/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/certificates/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Received Inquiries

GET /api/v1/inquiries/ GET /api/v1/inquiries/{id}/ inquiries:read May include PII

Staff contact / inquiry tickets (PII-heavy).

Filters: is_read, search. Email/telephone require pii:read.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/inquiries/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/inquiries/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/inquiries/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/inquiries/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Employees

GET /api/v1/employees/ GET /api/v1/employees/{id}/ employees:read May include PII

Staff employee registry. Identity/contact fields require pii:read.

Filters: status (employment_status), search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employees/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/employees/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employees/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/employees/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Employee Certificates

GET /api/v1/employee-certificates/ GET /api/v1/employee-certificates/{id}/ employee_certificates:read May include PII

Employment certificates (sensitive; grant only to approved HR partners).

Filters: is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employee-certificates/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/employee-certificates/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employee-certificates/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/employee-certificates/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Audit Logs

GET /api/v1/audit/ GET /api/v1/audit/{id}/ audit:read

System audit trail (read-only; immutable).

Filters: search. Ordered newest first.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/audit/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/audit/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/audit/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/audit/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Regions

GET /api/v1/regions/ GET /api/v1/regions/{id}/ regions:read

Geographic regions.

Filters: is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/regions/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/regions/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/regions/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/regions/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Districts

GET /api/v1/districts/ GET /api/v1/districts/{id}/ districts:read

Districts within regions.

Filters: region, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/districts/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/districts/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/districts/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/districts/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Towns

GET /api/v1/towns/ GET /api/v1/towns/{id}/ towns:read

Towns within districts.

Filters: district, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/towns/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/towns/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/towns/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/towns/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Communities

GET /api/v1/communities/ GET /api/v1/communities/{id}/ communities:read

Communities within towns.

Filters: town, is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/communities/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/communities/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/communities/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/communities/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Cooperative Types

GET /api/v1/cooperative-types/ GET /api/v1/cooperative-types/{id}/ cooperative_types:read

Cooperative type lookup.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperative-types/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/cooperative-types/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperative-types/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/cooperative-types/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Value Chains

GET /api/v1/value-chains/ GET /api/v1/value-chains/{id}/ value_chains:read

Value chain lookup.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/value-chains/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/value-chains/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/value-chains/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/value-chains/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Services

GET /api/v1/services/ GET /api/v1/services/{id}/ services:read

Cooperative services lookup.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/services/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/services/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/services/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/services/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Cooperative Documents

GET /api/v1/cooperative-documents/ GET /api/v1/cooperative-documents/{id}/ cooperative_documents:read

Documents attached to cooperatives (metadata + file URL).

Filters: cooperative, document_type.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperative-documents/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/cooperative-documents/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperative-documents/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/cooperative-documents/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Cooperative Mergers

GET /api/v1/cooperative-mergers/ GET /api/v1/cooperative-mergers/{id}/ cooperative_mergers:read

Cooperative merger / disintegration records.

Filters: status, main_cooperative.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperative-mergers/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/cooperative-mergers/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/cooperative-mergers/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/cooperative-mergers/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Input Types

GET /api/v1/input-types/ GET /api/v1/input-types/{id}/ input_types:read

Input type lookup.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-types/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/input-types/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-types/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/input-types/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Funding Sources

GET /api/v1/funding-sources/ GET /api/v1/funding-sources/{id}/ funding_sources:read

Funding / donor sources.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/funding-sources/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/funding-sources/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/funding-sources/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/funding-sources/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Input Dealer Documents

GET /api/v1/input-dealer-documents/ GET /api/v1/input-dealer-documents/{id}/ input_dealer_documents:read

Documents for input dealers.

Filters: dealer.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-dealer-documents/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/input-dealer-documents/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-dealer-documents/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/input-dealer-documents/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Input Dealer Certificates

GET /api/v1/input-dealer-certificates/ GET /api/v1/input-dealer-certificates/{id}/ input_dealer_certificates:read

Certificates for input dealers.

Filters: dealer, is_active.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-dealer-certificates/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/input-dealer-certificates/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-dealer-certificates/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/input-dealer-certificates/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Distribution Limits

GET /api/v1/distribution-limits/ GET /api/v1/distribution-limits/{id}/ distribution_limits:read

Distribution limit rules.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/distribution-limits/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/distribution-limits/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/distribution-limits/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/distribution-limits/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Inventory Movements

GET /api/v1/inventory-movements/ GET /api/v1/inventory-movements/{id}/ inventory_movements:read

Input inventory movements.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/inventory-movements/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/inventory-movements/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/inventory-movements/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/inventory-movements/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Input Impacts

GET /api/v1/input-impacts/ GET /api/v1/input-impacts/{id}/ input_impacts:read

Input distribution impact records.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-impacts/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/input-impacts/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/input-impacts/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/input-impacts/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Farmer Distributions

GET /api/v1/farmer-distributions/ GET /api/v1/farmer-distributions/{id}/ farmer_distributions:read

Per-farmer distribution line items.

Filters: distribution, farmer.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/farmer-distributions/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/farmer-distributions/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/farmer-distributions/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/farmer-distributions/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Compliance Alerts

GET /api/v1/compliance-alerts/ GET /api/v1/compliance-alerts/{id}/ compliance_alerts:read

Compliance alert notifications.

Filters: is_read, is_resolved, priority.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/compliance-alerts/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/compliance-alerts/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/compliance-alerts/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/compliance-alerts/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Positions

GET /api/v1/positions/ GET /api/v1/positions/{id}/ positions:read

HR job positions.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/positions/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/positions/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/positions/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/positions/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Departments

GET /api/v1/departments/ GET /api/v1/departments/{id}/ departments:read

HR departments.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/departments/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/departments/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/departments/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/departments/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Employee Identity Documents

GET /api/v1/employee-identity-documents/ GET /api/v1/employee-identity-documents/{id}/ employee_identity_documents:read May include PII

Employee identity document uploads.

Filters: employee.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employee-identity-documents/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/employee-identity-documents/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employee-identity-documents/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/employee-identity-documents/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Employee Approval Requests

GET /api/v1/employee-approval-requests/ GET /api/v1/employee-approval-requests/{id}/ employee_approval_requests:read

Employee create/update approval workflow tickets.

Filters: status.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employee-approval-requests/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/employee-approval-requests/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/employee-approval-requests/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/employee-approval-requests/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Projects

GET /api/v1/projects/ GET /api/v1/projects/{id}/ projects:read

HR / programme projects.

Filters: status, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/projects/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/projects/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/projects/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/projects/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Activities

GET /api/v1/activities/ GET /api/v1/activities/{id}/ activities:read

Project activities.

Filters: project, status.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/activities/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/activities/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/activities/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/activities/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Milestones

GET /api/v1/milestones/ GET /api/v1/milestones/{id}/ milestones:read

Project / activity milestones.

Filters: project, activity, status.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/milestones/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/milestones/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/milestones/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/milestones/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Inquiry Replies

GET /api/v1/inquiry-replies/ GET /api/v1/inquiry-replies/{id}/ inquiry_replies:read May include PII

Replies on received inquiries.

Filters: inquiry, direction.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/inquiry-replies/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/inquiry-replies/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/inquiry-replies/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/inquiry-replies/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Users

GET /api/v1/users/ GET /api/v1/users/{id}/ users:read May include PII

Portal user directory for offline field apps. Never returns password hashes. Mutation scopes are admin-issued only.

Filters: is_active, is_staff, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/users/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/users/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/users/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/users/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Roles

GET /api/v1/roles/ GET /api/v1/roles/{id}/ roles:read

RBAC roles.

Filters: is_active, search.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/roles/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/roles/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/roles/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/roles/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Site Visits

GET /api/v1/site-visits/ GET /api/v1/site-visits/{id}/ site_visits:read

Analytics site visit / event rows.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/site-visits/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/site-visits/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/site-visits/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/site-visits/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

User Sessions

GET /api/v1/user-sessions/ GET /api/v1/user-sessions/{id}/ user_sessions:read

Analytics user sessions.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/user-sessions/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/user-sessions/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/user-sessions/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/user-sessions/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Navigation Paths

GET /api/v1/navigation-paths/ GET /api/v1/navigation-paths/{id}/ navigation_paths:read

Analytics navigation path edges.

Supports pagination: page, page_size (client max applies).

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/navigation-paths/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/navigation-paths/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/navigation-paths/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/navigation-paths/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Reports

GET /api/v1/reports/ GET /api/v1/reports/{id}/ reports:read

Uploaded report metadata.

Filters: report_type, year, is_active, is_public.

curl
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/reports/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/reports/?page_size=5"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Authorization: Bearer YOUR_API_KEY" -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/reports/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/reports/123/"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Public CMS API

Read-only JSON for content already published on the DoCD public portal: news, policies, publications, photo/video galleries, and testimonials. Base path: /api/v1/public-cms/. No API key, scopes, or Partner account are required. Image, cover, and document fields return absolute public URLs suitable for mobile apps and third-party sites.

List endpoints return paginated JSON: count, next, previous, results. Default page size is 50 (max 200).

News categories

GET /api/v1/public-cms/news-categories/ GET /api/v1/public-cms/news-categories/{slug}/ No API key

Active news categories shown on the public portal.

Lookup detail by category slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/news-categories/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/news-categories/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/news-categories/example-category/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/news-categories/example-category/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

News articles

GET /api/v1/public-cms/news/ GET /api/v1/public-cms/news/{slug}/ No API key

Published news articles with absolute featured-image URLs.

Filters: category__slug. Lookup detail by article slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/news/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/news/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/news/example-article/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/news/example-article/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Policy categories

GET /api/v1/public-cms/policy-categories/ GET /api/v1/public-cms/policy-categories/{slug}/ No API key

Active policy document categories.

Lookup detail by category slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/policy-categories/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/policy-categories/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/policy-categories/example-policy-category/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/policy-categories/example-policy-category/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Policies

GET /api/v1/public-cms/policies/ GET /api/v1/public-cms/policies/{slug}/ No API key

Published policy documents with cover and file URLs.

Filters: category__slug, status. Lookup detail by policy slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/policies/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/policies/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/policies/example-policy/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/policies/example-policy/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Publication categories

GET /api/v1/public-cms/publication-categories/ GET /api/v1/public-cms/publication-categories/{slug}/ No API key

Active publication/report categories.

Lookup detail by category slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/publication-categories/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/publication-categories/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/publication-categories/example-publication-category/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/publication-categories/example-publication-category/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Publications

GET /api/v1/public-cms/publications/ GET /api/v1/public-cms/publications/{slug}/ No API key

Published reports and publications with downloadable file URLs.

Filters: category__slug, status, year. Lookup detail by publication slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/publications/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/publications/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/publications/example-publication/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/publications/example-publication/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Galleries

GET /api/v1/public-cms/galleries/ GET /api/v1/public-cms/galleries/{slug}/ No API key

Active photo/video galleries with featured-image URLs.

Filters: is_featured. Lookup detail by gallery slug.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/galleries/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/galleries/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/galleries/example-gallery/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/galleries/example-gallery/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Testimonials

GET /api/v1/public-cms/testimonials/ GET /api/v1/public-cms/testimonials/{id}/ No API key

Approved testimonials with photo or video URLs.

Filters: source_type, testimonial_type, is_featured.

curl
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/testimonials/?page_size=5"
Python
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/testimonials/?page_size=5"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
data = response.json()
print(data["count"], "results")
for row in data.get("results", []):
    print(row)
curl (detail)
curl -sS -H "Accept: application/json" "https://www.docd-dawda.com/api/v1/public-cms/testimonials/123/"
Python (detail)
import requests

url = "https://www.docd-dawda.com/api/v1/public-cms/testimonials/123/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
print(response.json())

Errors & limits

  • 401 — missing, invalid, revoked, expired, or IP-blocked key
  • 403 — valid key but missing required scope
  • 429 — rate limit exceeded (default ~120 requests/minute per client)

Successful reads are audited. Optional IP allowlists and expiry dates may apply to your client.

Request API access

Create a Partner API account, verify your email, then request Development or Production keys from your account. After approval, copy your key from the account page — keys are never emailed.

Sign up Login