---
title: "Get job application data from Darwinbox ATS API using Python"
url: "https://lb.getknit.dev/blog/get-job-application-data-from-darwinbox-ats-api-using-python/"
date: "2026-08-13T12:58:53+00:00"
modified: "2026-08-23T11:20:46+00:00"
type: "post"
---

# Get job application data from Darwinbox ATS API using Python

[Blog](https://lb.getknit.dev/blog) / [Tutorials](https://lb.getknit.dev/blogs/tutorials/) / Get job application data from Darwinbox ATS API using Python [Tutorials](https://lb.getknit.dev/blogs/tutorials/) · August 13, 2026 

Get job application data from Darwinbox ATS API using Python
============================================================

 ![](https://storage.googleapis.com/knit-website-media/2026/08/64c34ca1e0546a9d333bb35a_Kunal-3-150x150.png)Kunal Mishra

3 min read

 

 

 [](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Flb.getknit.dev%2Fblog%2Fget-job-application-data-from-darwinbox-ats-api-using-python%2F) [](https://twitter.com/intent/tweet?url=https%3A%2F%2Flb.getknit.dev%2Fblog%2Fget-job-application-data-from-darwinbox-ats-api-using-python%2F&text=Get%20job%20application%20data%20from%20Darwinbox%20ATS%20API%20using%20Python)  

 

 

 

  Table of Contents - [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [API Endpoint](#api-endpoint)
- [Step-by-Step Implementation](#step-by-step-implementation)
- [1. Fetch Data for a Single Candidate](#1-fetch-data-for-a-single-candidate)
- [2. Fetch Data for All Candidates Within a Date Range](#2-fetch-data-for-all-candidates-within-a-date-range)
- [Common Pitfalls to Watch Out For](#common-pitfalls-to-watch-out-for)
- [1. Incorrect Basic Auth credentials](#1-incorrect-basic-auth-credentials)
- [2. Misconfigured or expired API key](#2-misconfigured-or-expired-api-key)
- [3. Wrong subdomain](#3-wrong-subdomain)
- [4. Date format mismatches](#4-date-format-mismatches)
- [5. Large payload performance issues](#5-large-payload-performance-issues)
- [6. Rate limiting](#6-rate-limiting)
- [7. Complex, nested JSON](#7-complex-nested-json)
- [FAQs](#faqs)
- [Knit for Darwinbox ATS API Integration](#knit-for-darwinbox-ats-api-integration)
 
  **Introduction**
----------------

Darwinbox ATS sits at the core of hiring operations for many fast-growth companies, but extracting structured, reliable candidate data through the API can quickly turn into a multi-hour engineering effort. This guide breaks down the exact workflow for pulling job application data using the [Darwinbox ATS API](/integration/darwinbox-ats/), without the guesswork.

This article is part of a larger deep-dive series on the ATS API, covering authentication models, rate limits, job postings, candidate records, and more. You can explore the complete guide [**here**](/blog/ats-integration-guide/)**.**

**Prerequisites**
-----------------

- An active API Key issued by Darwinbox
- Darwinbox username + password (Basic Auth)
- Your organization’s Darwinbox subdomain
- Python environment prepared with `requests`

**API Endpoint**
----------------

**Bulk Candidate Data (V3):**
`https://{{subdomain}}.darwinbox.in/JobsApiv3/BulkCandidatesData`

**Step-by-Step Implementation**
-------------------------------

### **1. Fetch Data for a Single Candidate**

```
import requests

url = "https://{{subdomain}}.darwinbox.in/JobsApiv3/BulkCandidatesData"
headers = {
    "Content-Type": "application/json"
}
payload = {
    "api_key": "your_api_key",
    "candidate_id": ["candidate_id_here"]
}

response = requests.post(
    url,
    auth=('username', 'password'),
    headers=headers,
    json=payload
)

print(response.json())
```

### **2. Fetch Data for All Candidates Within a Date Range**

```
import requests

url = "https://{{subdomain}}.darwinbox.in/JobsApiv3/BulkCandidatesData"
headers = {
    "Content-Type": "application/json"
}
payload = {
    "api_key": "your_api_key",
    "created_from": "start_date_here",   # dd-mm-yyyy hh:mm:ss
    "created_to": "end_date_here"
}

response = requests.post(
    url,
    auth=('username', 'password'),
    headers=headers,
    json=payload
)

print(response.json())
```

**Common Pitfalls to Watch Out For**
------------------------------------

Getting the API to behave consistently requires precision. Here are the biggest tripwires:

### **1. Incorrect Basic Auth credentials**

Even minor typos in username/password cause silent 401 failures.

### **2. Misconfigured or expired API key**

Darwinbox keys may be environment-specific. Validate you’re using the right one.

### **3. Wrong subdomain**

Teams often confuse sandbox vs production subdomains.

### **4. Date format mismatches**

Darwinbox is strict about `dd-mm-yyyy hh:mm:ss`. Anything else breaks the request.

### **5. Large payload performance issues**

Bulk fetches may need pagination, retries, or queueing on your side.

### **6. Rate limiting**

Multiple bulk requests back-to-back can get throttled.

### **7. Complex, nested JSON**

Candidate objects come with deeply nested sections — mapping them into your system requires a proper schema plan.

**FAQs**
--------

**1. What format does the Darwinbox API key follow?**
A string token issued by the Darwinbox team. It must be included in every call.

**2. How do I authenticate?**
Use Basic Auth (username + password) along with the API key in the payload.

**3. Can I fetch multiple candidates in one call?**
Yes, pass a list of candidate IDs in `candidate_id`.

**4. What date format is required for bulk fetch?**
`dd-mm-yyyy hh:mm:ss`. Anything else is rejected.

**5. How do I troubleshoot error responses?**
Check:

- API key validity
- Subdomain correctness
- Auth credentials
- Payload parameters

**6. Is there a limit to bulk fetching?**
Darwinbox may throttle heavy loads. Check with your account team for exact limits.

**7. How do I keep the integration secure?**
Use HTTPS, rotate API keys, and store credentials in a secrets manager.

**Knit for Darwinbox ATS API Integration**
------------------------------------------

If you want to avoid maintaining the entire integration lifecycle, authentication, retries, throttling, schema handling, and version upgrades, Knit abstracts all of it. A single integration with Knit unlocks seamless access to [Darwinbox ATS API](https://developers.getknit.dev/docs/darwinbox-ats-usecases) data, removes ongoing maintenance overhead, and ensures the API behaves reliably at scale. It’s the fastest way to productionize a Darwinbox integration.

---

**Ready to build this integration?**
Explore Knit’s [Darwinbox ATS integration](/integration/darwinbox-ats/) or read more about our [Unified ATS API](/integration-categories/unified-ats-api/).

 

 ![](https://storage.googleapis.com/knit-website-media/2026/08/64c34ca1e0546a9d333bb35a_Kunal-3-150x150.png)Written by Kunal Mishra

Changing integration landscape, one organization at a time‍

 

 

 

 

 

   Keep Reading
------------

  ![](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-green-640x400.png) [Tutorials](https://lb.getknit.dev/blogs/tutorials/) 

### [How to Create a Slack Bot in 5 Minutes: A to Z Guide](https://lb.getknit.dev/blog/how-to-create-a-slack-bot/)

You can create your own Slack Bot in just a few minutes with the Knit Unified API. Read this step-by-step…

 August 13, 2026 · 3 min read 

 

   ![](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-green-640x400.png) [Tutorials](https://lb.getknit.dev/blogs/tutorials/) 

### [How to Build and Deploy a Microsoft Teams Bot](https://lb.getknit.dev/blog/how-to-build-and-deploy-a-microsoft-teams-bot/)

You can either build Microsoft Teams Bot on your own or you can use Knit's Unified API to create it…

 August 13, 2026 · 4 min read 

 

   ![](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-yellow-scaled-640x400.png) [Tutorials](https://lb.getknit.dev/blogs/tutorials/) 

### [What Should You Look For in A Unified API Platform?](https://lb.getknit.dev/blog/what-should-you-look-for-in-a-unified-api-platform/)

The right unified API can solve all your integration woes at minimal effort and cost. Read this to know how…

 August 13, 2026 · 14 min read 

 

  

 

  \#1 in Ease of Integrations
---------------------------

![4.9 out of 5 stars](/wp-content/themes/knit/assets/images/g2/g2-star-rating.svg)

4.9 out of 5 stars on G2

![G2 Leader, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-leader.svg)![G2 Fastest Implementation, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-fastest-implementation.svg)![G2 High Performer, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-high-performer.svg)![G2 Best Est. ROI, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-best-roi.svg)

 

  Put Integrations on Autopilot. Talk to Experts.
-----------------------------------------------

Knit is loved by customers across the globe due to our seamless product and white glove support. You'll love us too!

 [Talk to a Human](/book-demo)
