REST API¶
django-acquisitions provides a REST API built with Django REST Framework.
Setup¶
Install with the DRF optional dependency:
pip install django-acquisitions[drf]
Add the URLs to your project:
urlpatterns = [
...
path('api/acquisitions/', include('acquisitions.api.urls')),
]
Authentication¶
All endpoints require authentication. The API uses DRF’s standard authentication classes.
Prospective Clients¶
List and create prospective clients:
GET /api/acquisitions/prospective-clients/
POST /api/acquisitions/prospective-clients/
Retrieve, update, or delete a prospective client:
GET /api/acquisitions/prospective-clients/{uuid}/
PUT /api/acquisitions/prospective-clients/{uuid}/
PATCH /api/acquisitions/prospective-clients/{uuid}/
DELETE /api/acquisitions/prospective-clients/{uuid}/
Filtering:
?status=new- Filter by status?assigned_to=me- Filter by current user?search=acme- Search by company name
Actions:
Convert to customer:
POST /api/acquisitions/prospective-clients/{uuid}/convert/
Enroll in campaign:
POST /api/acquisitions/prospective-clients/{uuid}/enroll_campaign/
{"campaign_uuid": "..."}
Contacts¶
Nested under prospective clients:
GET /api/acquisitions/prospective-clients/{uuid}/contacts/
POST /api/acquisitions/prospective-clients/{uuid}/contacts/
GET /api/acquisitions/prospective-clients/{uuid}/contacts/{contact_uuid}/
PUT /api/acquisitions/prospective-clients/{uuid}/contacts/{contact_uuid}/
PATCH /api/acquisitions/prospective-clients/{uuid}/contacts/{contact_uuid}/
DELETE /api/acquisitions/prospective-clients/{uuid}/contacts/{contact_uuid}/
Touchpoints¶
Nested under prospective clients:
GET /api/acquisitions/prospective-clients/{uuid}/touchpoints/
POST /api/acquisitions/prospective-clients/{uuid}/touchpoints/
GET /api/acquisitions/prospective-clients/{uuid}/touchpoints/{touchpoint_uuid}/
Example: Create a touchpoint
{
"touchpoint_type": "email",
"direction": "outbound",
"subject": "Follow up",
"occurred_at": "2024-01-15T10:00:00Z"
}
Dashboard¶
Team overview and analytics:
GET /api/acquisitions/dashboard/
Returns full dashboard data including:
Pipeline summary (counts by status)
Stale prospects (no recent contact)
Unassigned prospects
Seller performance
Upcoming outreach
Conversion funnel
Campaign performance
Query Parameters:
?stale_days=14- Days without contact to be considered stale?activity_days=30- Days to look back for activity metrics
Individual endpoints:
GET /api/acquisitions/dashboard/pipeline/
GET /api/acquisitions/dashboard/stale/
GET /api/acquisitions/dashboard/unassigned/
GET /api/acquisitions/dashboard/sellers/
GET /api/acquisitions/dashboard/funnel/
GET /api/acquisitions/dashboard/campaigns/
GET /api/acquisitions/dashboard/activity/
Campaigns¶
GET /api/acquisitions/campaigns/
POST /api/acquisitions/campaigns/
GET /api/acquisitions/campaigns/{uuid}/
PUT /api/acquisitions/campaigns/{uuid}/
PATCH /api/acquisitions/campaigns/{uuid}/
DELETE /api/acquisitions/campaigns/{uuid}/
Campaign detail includes nested steps:
{
"uuid": "...",
"name": "Welcome Series",
"status": "active",
"steps": [
{
"step_order": 0,
"step_type": "email",
"delay_days": 0,
"subject_template": "Welcome!"
}
]
}
Marketing Documents¶
GET /api/acquisitions/documents/
POST /api/acquisitions/documents/
GET /api/acquisitions/documents/{uuid}/
Filtering:
?type=brochure- Filter by document type
Actions:
Track views and downloads:
POST /api/acquisitions/documents/{uuid}/track_view/
POST /api/acquisitions/documents/{uuid}/track_download/
Note
Non-staff users cannot see documents marked as is_internal_only=True.
Seller Profiles¶
Get current user’s profile:
GET /api/acquisitions/sellers/me/
List all sellers (requires seller profile or staff):
GET /api/acquisitions/sellers/
Industries¶
GET /api/acquisitions/industries/
POST /api/acquisitions/industries/
GET /api/acquisitions/industries/{id}/
Categories¶
GET /api/acquisitions/categories/
POST /api/acquisitions/categories/
GET /api/acquisitions/categories/{id}/