Kiva APIkiva.org ↗
Access Kiva microfinance data: search loans by country, sector, and status; get borrower details, lender lists, field partner metrics, and impact updates.
What is the Kiva API?
The Kiva API provides 6 endpoints covering microfinance loans, borrower profiles, lender contributions, field partners, and impact journal entries. Use search_loans to filter active and historical loans by country code, sector, gender, and status, then retrieve full borrower details, repayment terms, and payment schedules via get_loan_details. Partner data — including risk ratings, countries served, and financial metrics — is available through get_partners and get_partner_details.
curl -X GET 'https://api.parse.bot/scraper/7fbbf24d-53fb-4694-b158-66bb655583d1/search_loans?page=1&sort=newest&query=agriculture&gender=male§or=Agriculture&status=fundraising&per_page=5&country_code=KE' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace kiva-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.kiva_microfinance_api import Kiva, Sort, Gender, LoanStatus, Loan, Partner
kiva = Kiva()
# Search for agriculture loans in Kenya that are fundraising
for loan in kiva.loans.search(sector="Agriculture", country_code="KE", status=LoanStatus.FUNDRAISING, sort=Sort.NEWEST, limit=5):
print(loan.name, loan.loan_amount, loan.sector, loan.location.country)
# Drill into lenders for each loan
for lender in loan.lenders.list(limit=3):
print(lender.name, lender.whereabouts)
# Check for journal updates
for entry in loan.updates.list(limit=2):
print(entry.id, entry.body)
# List field partners
for partner in kiva.partners.list(limit=5):
print(partner.name, partner.status, partner.default_rate, partner.loans_posted)
Search for loans with various filters including status, sector, country, gender, and keyword. Returns paginated results sorted by the specified order. Supports filtering by fundraising status, sector, country, and borrower gender. Each loan includes summary fields: id, name, status, sector, activity, loan_amount, location, and borrower count. Pagination via page number; sort controls result ordering.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| query | string | Keyword search query to filter loans. |
| gender | string | Gender filter. |
| sector | string | Sector name to filter by (e.g. Agriculture, Food, Education, Services, Transportation). |
| status | string | Loan status filter. |
| per_page | integer | Number of results per page. |
| country_code | string | ISO 2-letter country code to filter by (e.g. KE, UG, PH, ID). |
{
"type": "object",
"fields": {
"page": "current page number",
"loans": "array of loan summaries with id, name, status, sector, loan_amount, location, and other fields",
"pages": "total number of pages",
"total": "total number of matching loans",
"page_size": "number of results per page"
},
"sample": {
"data": {
"page": 1,
"loans": [
{
"id": 3186662,
"use": "to buy items to continue making clothes",
"name": "Santiago De Jesus Group",
"sector": "Services",
"status": "fundraising",
"activity": "Tailoring",
"location": {
"town": "Capiata",
"country": "Paraguay",
"country_code": "PY"
},
"partner_id": 567,
"loan_amount": 3550,
"posted_date": "2026-06-10T19:33:45Z",
"lender_count": 0,
"funded_amount": 0,
"borrower_count": 15
}
],
"pages": 1710,
"total": 5129,
"page_size": 3
},
"status": "success"
}
}About the Kiva API
Loan Search and Filtering
search_loans accepts up to eight filter parameters: status (fundraising, funded, in_repayment, ended, refunded), sector (Agriculture, Food, Education, etc.), country_code (ISO 2-letter), gender, and a freetext query. Results are paginated with page and per_page controls, and can be sorted by newest, oldest, popularity, or expiring_soon. Each result in the loans array includes id, name, status, sector, loan_amount, and location fields, plus a paging object with total, page_size, and pages.
Loan Detail and Activity
get_loan_details takes a loan_id from search results and returns a single loan object with full description texts, borrower names and profiles, repayment terms, and a payments schedule. get_loan_lenders returns a paginated lenders array for that loan, useful for understanding community participation. get_loan_updates returns journal_entries — field-posted progress updates — paginated by page, allowing you to track loan lifecycle events over time.
Field Partner Data
get_partners lists Kiva's microfinance institution partners with id, name, status, rating, countries, and financial metrics in each object of the partners array. Pagination is controlled by page and per_page. get_partner_details accepts a partner_id and returns the full partner object with the same fields at single-record resolution. Partner risk ratings and country coverage make this endpoint useful for building trust or geographic filtering logic into lending tools.
Identifiers and Traversal
The six endpoints form a natural traversal chain: loan IDs from search_loans feed into get_loan_details, get_loan_lenders, and get_loan_updates; partner IDs from get_partners feed into get_partner_details. All paginated responses share the same paging object shape (page, total, page_size, pages), making uniform pagination logic straightforward to implement.
The Kiva API is a managed, monitored endpoint for kiva.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kiva.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official kiva.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a loan discovery tool filtering Kiva loans by country_code, sector, and fundraising status
- Display borrower profiles and repayment schedules from get_loan_details on a lending dashboard
- Map Kiva field partners by countries served and rating using get_partners financial metrics
- Track loan impact over time by polling journal entries from get_loan_updates
- Analyze gender and sector distribution of active loans using search_loans filter combinations
- Show social proof on a loan listing page by surfacing lender count from get_loan_lenders
- Aggregate partner risk ratings across regions using get_partner_details for due-diligence tools
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Kiva have an official developer API?+
What does search_loans return and how granular is the filtering?+
loans array where each object includes id, name, status, sector, loan_amount, and location, plus a paging object. You can filter simultaneously by status, sector, country_code, gender, and a keyword query, and control sort order with sort (newest, oldest, popularity, expiring_soon). Pagination is handled with page and per_page.Does the API expose individual lender profiles or lender history?+
get_loan_lenders endpoint returns a lenders array for a specific loan, but individual lender detail pages and full lender lending history are not currently covered. The API focuses on loan-centric and partner-centric data. You can fork the API on Parse and revise it to add a lender profile endpoint.Are team or group lending pages accessible through this API?+
How fresh is the loan status data, and does it reflect real-time funding progress?+
fundraising and funded. Kiva loans can move through statuses quickly during active fundraising periods, so for time-sensitive applications monitoring loan_amount or status transitions, polling get_loan_details at regular intervals is more reliable than caching results.