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.
- FamilySearch Java SDK Official
The official Java SDK for the FamilySearch API. Developed as an extension to the GEDCOM X Java library, the Java SDK serves as the reference implementation for both GEDCOM X and the FamilySearch API.
- FamilySearch Java SDK Android Samples Under Development
- FamilySearch PHP SDK Official
The official PHP SDK for the FamilySearch API. Developed as an extension to the GEDCOM X PHP library.
- FamilySearch C# SDK Official
The official C# SDK for the FamilySearch API. Developed as an extension to the GEDCOM X C# library.
- 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.
A Ruby gem for using the FamilySearch API.
- OmniAuth FamilySearch
A Ruby OmniAuth strategy for using OAuth2 with the FamilySearch API.
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.
PhoneGap Mobile App Official
C# Sample App unofficial
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
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.
|enunciate-common.c||40,626||Common code needed for all projects.|
.NET Client Library
This bundle contains C# source code.
|aggregated-docs-dotnet.zip||93,701||The C# source code for the .NET client library.|
Java Client Library
The Java client-side library is used to access the Web service API for this application.
|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
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.
|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
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.
|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
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+.
Ruby Client Library
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.
- 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.