Historical Figures API

The Historical Figures API allows you search the famous (in)famous people in history. From ancient civilization to the current decade, our database contains a wide range of notable individuals from all walks of life.



Returns a list of up to 10 people that match the search parameters.


Either name and/or title is required.

name - name of the person to search. Includes partial results (e.g. julius will match Julius Caesar).

offset - number of results to offset pagination.


X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!


Sample Response

    "name": "Julius Caesar",
    "title": "Roman general and statesman",
    "info": {
      "born": "12 July 100 BC Rome Italy",
      "died": "15 March 44 BC Rome, Italy",
      "years": "81-45 BC",
      "awards": "Civic Crown",
      "office": [
        "Consul (59, 48, 46-45, 44 BC)",
        "Dictator (49-44 BC)"
      "parents": [
        "Gaius Julius Caesar",
      "spouses": "Cossutia (disputed) Cornelia (m. 84 BC; d. 69 BC) Pompeia (m. 67 BC; div. 61 BC) Calpurnia (m. 59 BC)",
      "children": [
        "Caesarion (unacknowledged)",
        "Augustus (adoptive)"
      "partners": "Cleopatra",
      "conflicts": [
        "War against Mytilene Siege of Mytilene",
        "Siege of Mytilene",
        "Third Mithridatic War",
        "Gallic Wars Battle of the Arar Battle of Bibracte Battle of Vosges Battle of the Axona Battle of the Sabis Siege of the Atuatuci Crossing of the Rhine Invasions of Britain Siege of Avaricum Siege of Gergovia Battle of Alesia Siege of Uxellodunum",
        "Battle of the Arar",
        "Battle of Bibracte",
        "Battle of Vosges",
        "Battle of the Axona",
        "Battle of the Sabis",
        "Siege of the Atuatuci",
        "Crossing of the Rhine",
        "Invasions of Britain",
        "Siege of Avaricum",
        "Siege of Gergovia",
        "Battle of Alesia",
        "Siege of Uxellodunum",
        "Caesar's Civil War Siege of Corfinium Siege of Brundisium Siege of Massilia Battle of Ilerda Siege of Oricum Siege of Dyrrhachium Siege of Gomphi Battle of Pharsalus Siege of Alexandria Battle of the Nile Battle of Zela Battle of Ruspina Battle of Thapsus Battle of Munda Siege of Corduba",
        "Siege of Corfinium",
        "Siege of Brundisium",
        "Siege of Massilia",
        "Battle of Ilerda",
        "Siege of Oricum",
        "Siege of Dyrrhachium",
        "Siege of Gomphi",
        "Battle of Pharsalus",
        "Siege of Alexandria",
        "Battle of the Nile",
        "Battle of Zela",
        "Battle of Ruspina",
        "Battle of Thapsus",
        "Battle of Munda",
        "Siege of Corduba"
      "occupation": [
      "notable_work": [
        "Bellum Gallicum",
        "Bellum Civile"
      "resting_place": "Temple of Caesar Rome 41deg53'31''N 12deg29'10''E / 41.891943degN 12.486246degE / 41.891943; 12.486246",
      "cause_of_death": "Assassination ( stab wounds )"

import requests

name = 'julius caesar'
api_url = 'https://api.api-ninjas.com/v1/historicalfigures?name={}'.format(name)
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
    print("Error:", response.status_code, response.text)
var name = 'julius caesar'
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/historicalfigures?name=' + name,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
const request = require('request');
var name = 'julius caesar'
  url: 'https://api.api-ninjas.com/v1/historicalfigures?name=' + name,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("https://api.api-ninjas.com/v1/historicalfigures?name=julius caesar");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
let name = "julius caesar".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: "https://api.api-ninjas.com/v1/historicalfigures?name=" + name!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.