HTTP Status Codes

The FamilySearch API makes full use of existing standards for HTTP status codes. The following table contains explanations of what the status codes mean in the context of the FamilySearch API.

Status Message Example Request Description
200 OK Read Person The request was successful. This is usually returned when making a simple GET request.
201 Created Person Create A new resource was successfully created, such as a person, relationship, or source.
204 No Content Update Person Conclusion The request was successful but nothing was created and nothing was available to return. This occurs when updating a resource (such as a person) or when asking for a list of resources that is empty (no search results or no relationships).
301 Moved Permanently Merge Person The requested resource was merged into another resource. When this occurs, a Location header and a X-Entity-Forwarded-Id header that point to the new resource will be provided.
303 See Other Read Current User Person A resource was requested that always forwards to an another resource, such as Current User Person and Preferred Spouse Relationship.
304 Not Modified Caching The Person This is provided as the result of a successful conditional GET.
307 Temporary Redirect Person Portait This is provided as the result of a successful GET to a resource that has an alternative URL.
400 Bad Request Search Persons With Warnings and Errors An invalid request was made. A Warning header is usually returned to explain what went wrong. Common causes are malformed XML or JSON, correctly formatted XML or JSON with incorrect data (such as a date with no original value), or an incorrectly formatted search or match query.
401 Unauthorized The user is not properly authenticated. Either the access token was not sent or the token has expired.
403 Forbidden A resource was requested that the user does not have permission to access.
404 Not Found Read Not Found Person A resource was requested that does not exist. You may have an incorrect URI or are requesting a resource that was deleted. This may also be provided when requesting notes, sources, or discussions for a person who is living.
404 Not Found on Accelerator The request was not understood by the networking and routing infrastructure. It is usually caused by improper or unusual formatting of HTTP headers. Please contact developer support to help resolve the issue.
405 Method Not Allowed The HTTP method being used (such as GET or POST) is not supported by the resource. Review the docs for the resource to see which methods are allowed.
406 Not Acceptable An invalid content type is being used in the Accept header. Review the valid list of content types in the resource's documentation.
409 Conflict This is returned when attempting to create a relationship that already exists, a conclusion that already exists, or if an attempt is made to update the same resource at the same time as somebody else and the other update was applied first.
410 Gone Read Deleted Person The resource you are requesting or operating on has been deleted. In the case of GET requests, the resource is still provided in the body of the request.
415 Unsupported Media Type You specified an invalid data format (media type) in the Content-Type header.
412 Precondition Failed The server wasn't able to fulfil the precondition given in one or more of the request-header fields.
417 Expectation Failed The server wasn't able to fulfil the expectation provided by the Expect header. Probably a bug; report the error.
429 Too Many Requests The user is being throttled because the user has used too much processing time recently.
500 Internal Server Error An unexpected error occurred on the server-side. FamilySearch monitors server logs and addresses all identified issues, but we encourage you to report the error.
503 Service Unavailable A needed service is unavailable. FamilySearch monitors server logs and addresses all identified issues, but we encourage you to report the error.
504 Gateway Timeout A request to a needed service failed to respond within a specified time period. Report the error if the 504 persists for a specific resource for longer than an hour.