API Development and Documentation
Architecting and documenting an API for secure transmission of DNA data between Adopted.com and it's Partner Network
The Adopted.com DNA Match Inquiry API allows partners to receive DNA data from members to help identify potential matches with their networks. I worked to architect the transmission system by which DNA information would be encrypted and sent to partners securely for results matching; providing detailed documentation for partners to follow.Preview in a New Window
Transmitting DNA data over the open internet via a self-service API is a daunting challenge, and one that I assisted Adopted.com with in terms of architecting a code-based solution for. The idea was simple - users could opt-in to share their DNA information securely with Adopted.com's partners in the hopes that doing so would broaden the possible results set, and lead to more matches (potentially finding long lost family members). Partners (once they have an API account) could self-register their API endpoints and immediately begin receiving data.
We settled on an authentication system for registering webhooks based on public and private API keys, using REST API endpoints with calculated signatures based on the private key and the request payload to ensure that the DNA data was going to the correct place. DNA data was encrypted using an OpenSSL AES-256-CTR cipher based on the private key, as an extra precaution against data being intercepted on-route. Being aware that processing DNA data takes time, we split the API endpoints to allow asynchronous response of results data using a predetermined user token when reporting back to Adopted.com.
To make this as easy as possible to implement for the Partner developers, I setup documentation with full code samples for PHP, NodeJS, and plain HTTP requests. Internally I assisted the team with implementing the local code to encrypt the data prior to transmission; and to test the overall process. The end result was a straightforward and secure way for Adopted.com and it's Partner Network to share DNA data as requested by users, to help find missing family members.
"Thank you Simon, this is wonderful! I showed this to Ancestry today and it could not have gone better. Thank you again immensely.”
Director @ Adopted.com
Have a project in mind?
I'd be happy to chat, and see if we'd be a good fit...