Tools

SDKs

These software development kits (SDKs) are being developed for the FamilySearch API. We encourage you to support and contribute to these SDKs as needed. Some of them are marked as "official" SDKs, indicating that they are developed and supported by FamilySearch.

NOTE: If you contribute to an SDK for FamilySearch, please abide by our Standards for SDK Development.

Java

PHP

  • FamilySearch PHP SDK Official
    The official PHP SDK for the FamilySearch API. Developed as an extension to the GEDCOM X PHP library.

C#

JavaScript

Python

  • Python SDK for FamilySearch API Under Development
    It is designed for Python 3 and 2.7. Python 2.6 is the earliest supported version, but bugfixes are low-priority. 2.5 and earlier are not guaranteed to work, or supported, and are considered legacy.
  • Windows App for Python SDKUnder Development 32-bit Windows sample applications for demonstrating the use of FamilySearch-Python SDK. To run these, click on Download ZIP, and then on the executable in the directory.

Ruby

Sample Apps

Sample Apps can be used for learning about the code or starting a demo project. The sample code provided is not a complete product. The code lacks appropriate error handling and provides only basic user interface to show the rendering of the results from the sample API requests.

Android App

JavaScript App Official

PHP App

PhoneGap Mobile App Official

Python App

C# Sample App unofficial

Generated Libraries

The following libraries are generated from the source code of the API. They are available for use in reading and writing data to the FamilySearch API. They provide objects that reflect the structure of the APIs. They do not provide code that sends HTTP requests.

Many of these generated libraries were used to seed the official SDKs.

C Client Library

Introduction

The C module generates the source code for the ANSI-C-compatible data structures and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated C source code depends on the XML Reader API and the XML Writer API as well as the <time.h>, <string.h>, and <stdlib.h> C standard libraries.

File Size Description
aggregated-docs.c 2,181,375
enunciate-common.c 40,626 Common code needed for all projects.

.NET Client Library

Introduction

This bundle contains C# source code.

File Size Description
aggregated-docs-dotnet.zip 93,701 The C# source code for the .NET client library.

Java Client Library

Introduction

The Java client-side library is used to access the Web service API for this application.

File Size Description
aggregated-docs-client.jar 190,077 The binaries for the Java client library.
aggregated-docs-client-sources.jar 96,973 The sources for the Java client library.

Java JSON Client Library

Introduction

The Java client-side library is used to provide the set of Java objects that can be serialized to/from JSON using Jackson. This is useful for accessing the JSON REST endpoints that are published by this application.

File Size Description
aggregated-docs-json-client.jar 146,768 The binaries for the Java JSON client library.
aggregated-docs-json-client-sources.jar 90,631 The sources for the Java JSON client library.

Objective C Client Library

Introduction

The Objective C module generates the source code for the Objective C classes and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated Objective C source code depends on the XML Reader API and the XML Writer API as well as the base OpenStep foundation classes.

File Size Description
aggregated-docs.h 186,533
aggregated-docs.m 1,312,961
enunciate-common.h 13,130 Common header needed for all projects.
enunciate-common.m 43,361 Common implementation code needed for all projects.

PHP Client Library

Introduction

The PHP client-side library defines the PHP classes that can be (de)serialized to/from JSON. This is useful for accessing the REST endpoints that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library requires the json_encode function which was included in PHP versions 5.2.0+.

File Size Description
aggregated-docs-php.zip 160,160

Ruby Client Library

Introduction

The Ruby client-side library defines the Ruby classes that can be (de)serialized to/from JSON. This is useful for accessing the REST endpoints that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library leverages the Ruby JSON Implementation, which is required in order to use this library.

File Size Description
aggregated-docs.rb 197,785

Other Tools

  • Fiddler - A debugging proxy to inspect and modify HTTP and HTTPS traffic
  • Poster - A Firefox extension that can make HTTP requests to any URL and inspect the response
  • Wireshark - A network packet analyzer that can capture and inspect any network traffic
  • Tree Data Copy Utility - An open source project that is a utility to copy portions of the production Family Tree data to your sandbox. This project is not officially supported by FamilySearch.

What other utilities do you find useful? Please let us know so fellow developers can benefit.