Get Started Developing with FamilySearch

As a FamilySearch developer, you can enable your apps to interact with the FamilySearch Family Tree database.

The FamilySearch API is a RESTful web service that can be used to enable your apps to read and write data in various FamilySearch resources. A RESTful web service uses standard web technologies such as HTTP, XML, and JSON. If you will be building your app in Java, .NET, PHP, or JavaScript, FamilySearch provides SDKs to make interacting with the API easy.

Even if you will be using an SDK, it may be helpful to understand the RESTful API calls that are made behind the scenes. If you are unfamiliar with using a RESTful API, you may want to learn more about REST before proceeding.

The following steps are needed for you to start developing and delivering quality apps with FamilySearch.


Register for a FamilySearch Developer Account

You may find it helpful to visit our Partnering link on the FamilySearch developer website to review the benefits of getting a partner account with FamilySearch.

To register yourself as partner with FamilySearch, visit the FamilySearch developer website, click the Register Now button, and complete the form to obtain a FamilySearch developer account.

An email will be sent with a link to validate and complete your registration.

To validate your account, enter a password of your choosing. This account and password allow you to log in to the FamilySearch developer website. When you validate your account, you are automatically logged in to your account, and your sandbox link, username, and password are displayed in the Sandbox Account window. You will use the sandbox to create test data and test your apps during development.


Register Your App and Receive an App Key

Register your app with FamilySearch by clicking the Create App button on the developer website. Be prepared with the following information.

  • App Name. Decide on a name for your app. This name will be made publicly visible to users of your app when they visit the FamilySearch web page.
  • App Type. Your app type options are Web, Mobile, or Desktop. You need an app key for each type of the app that you develop.
  • Your Redirect URI. Your redirect URI should be an absolute URI that points to the location of your app in order to complete the authentication flow. Depending on the server address that is running your app, your redirect URI may look something like one of the following:
    • http://localhost/familysearch-return.php
    • http://localhost:5000/auth/familysearch/complete

You can add multiple redirect URIs for testing purposes, but one must be designated as the default.

Important! If you do not know your URI at this time, enter http://fiddle.jshell.net here now and again later in a JSFiddle sample we provide. When you begin coding your own app, you will then need to edit this redirect URI value with your own redirect URI. If the redirect URI in your code does not match the redirect URI you enter here, your app will not be authenticated to access FamilySearch data.

You must click the Save Changes button to save your app. A unique sandbox app key is assigned for your app and is shown on the Application Details page of each app. Use this sandbox app key in the FamilySearch API calls you make to access your developer sandbox data for testing purposes. Later, after your app is certified, a production app key is assigned. Use the production app key to access the production FamilySearch database.


(Optional) Verify Your App Key

You can verify that your app key can be used to acquire an access token (authenticate) by using the Test app key button on your App Details page of the FamilySearch developer website. This link takes you to a JSFiddle sample. You do not need to log in or sign up to JSFiddle.

This sample code uses the FamilySearch.getAccessToken() function of the JavaScript SDK. You need to complete the following steps:

  1. Copy your sandbox app key into the app_key parameter value where indicated inside the single quotes.
  2. Copy 'http://fiddle.jshell.net' as the redirect URI into the auth_callback parameter value where indicated. If this were your own app, you would copy your redirect URI into this value.
  3. Click the Update button located in the top menu ribbon.
  4. The buffered copy of the code is updated with the edits you made.

  5. Click the Run link in the window adjacent to the code.
  6. The FamilySearch authorization resource asks you to enter your sandbox username and password.

  7. Enter your sandbox username and password.
  8. You are granted an access token, which verifies that your app key works.


Note: The JSFiddle sample uses the getAccessToken() JavaScript SDK function to obtain an access token. If you do not use the JavaScript SDK, you need to perform additional programming on your own. For more information on obtaining an access token, see FamilySearch Authentication.


Establish Your Programming Environment

You must select and establish the programming language and environment you will use for developing your apps. If you have not already established your programming environment, you might consider using one of the following because of the existing SDKs that are available for each. Sample code is in development with the following priority and will be posted on the developer website when completed.

  1. PHP
  2. JavaScript
  3. Java
  4. C#

Code Your App

The first step your app must do is to authenticate itself with FamilySearch by obtaining an access token. This access token is required for every other FamilySearch resource request. To become familiar with the FamilySearch authentication process, see Authentication.

The next step is to proceed with developing your code. The FamilySearch developer website includes the following resources to help you with your coding efforts.

  • API Resource Specifications with links to sample code.
  • Data Formats Specifications.
  • Concepts Guides with best practices.
  • Certification Guides with suggested user interface flows, programming steps, best practices, and related topics.
  • A Sample App as an introduction to using the FamilySearch API resource calls.
  • Community Support. Our developer website has a Q&A section you can use to get answers to your development questions from our developer community.
  • A Glossary of terms often used in the FamilySearch API developer documentation.

Certify Your App

The certification process and requirements are explained in detail in the Certification section of the developer website.


Add Your App to the App Gallery

After your app is certified, you can add it to the FamilySearch App Gallery.

When your app is in the App Gallery, all family history users who visit the FamilySearch website will be able to see your app. Log in to the FamilySearch Developers site and click the Create App button to create an entry in the App Gallery for your app. Your app will be reviewed, and you will be notified that your app has been approved or that you need to complete additional work before it is approved.