SlideShare a Scribd company logo
1 of 29
Real Estate API’s and me...
Real Estate tech in the 90’s...
pete@witlytic.com
@petergoldey
https://www.linkedin.com/in/p
etergoldey
public records / FOIA
10 Years of API’s @Onboard
2004 - Public Records
2005 - AVM
2008 - IDX Listings
2009 - Geography
2010 - Lifestlye Search
2011 - Area Search
2011 - Boundaries
2011 - Neighborhoods
2011 - Community / Schools
2011 - POI’s
2013 - Transit
2014 - Property API Suite
Founder
Things have changed…A LOT!
Have a Purpose
Ours was: Delivery Innovation
- recognized by Inman, RISmedia, RE Technology, 1000Watt.
Why did we take a commercial API approach?
- It gave us a vehicle for driving our business forward.
2011 Inman Connect
But we made lots of mistakes…
API’s are PRODUCTS
listen to customers, research, marketing, support,
customer feedback, relationship building, use cases,
analytics, stories, value propositions, documentation,
standards, utility, comprehensive testing, platform
management, pricing, security, PR, evangelism,
standards, reuse, stability, experience, purpose
API Users vs API Designers
Remember whom you are building for.
Tailor your API accordingly.
Internal?
External?
Developers? What kind?
Who the users are tells you a lot.
what they ask, what type of answers they expect, how they consume it, how often, etc
Me in 2004 - API Designer
Good looking
Naive
Knew the domain model REALLY well
Data expert
Designed for:
● Flexibility
● As many use cases as possible
Built it for myself
Assumptions
Over engineered Building our Nearby Home Sales XML service
The Awesomeness We Delivered
20+ parameters!
Multivariate interactions!!
Iterative search process!!!
Excellent parameter
documentation.
No restrictions!!
but we missed something big...
We didn’t figure out the Right Questions
Our Customers in 2005
API user says “Domain what?”
Frustrated
Busy
Lazy
Risk averse
What they wanted:
● Use case solutions
○ Find comps
○ Drip marketing
○ No Dead Ends!
Using our 1st Nearby Home Sales XML service
What we did next….
Auto-increment from radius1 and radius2
● Find nearest first. Ensure results.
Added prioritization
● Time vs. Distance
Added priceRangePercent
● Comps based on subject property
Added fuzzy logic for comps
● Best match beds, baths, $, sqft
Listened to clients. Understood their use cases. Made it easy.
Created dateAdded
● Drip marketing trigger
Created geography lookup for updates
● County level lastModified
Created queryID and “requery” method.
● Saved searches method
Added system and per account defaults
● Light weight. Central control.
The Results?
Happy clients. (more $$)
“Better” usage. (save $$’s)
Less implementation support. (save $$’s)
Product Management (control)
Happy internal engineers (culture)
New mindset: design for the API user!!!
Make it Useful!!
Why will these guys use your API?
They can find it (more on this later).
It offers value (saves time or resources, cost,
features)
It looks “good” (quality, logic, use cases)
Easy to use (version stable*, build for users,
documentation, use features)
* we’re not all like Facebook!!
Make it Usable!!
You’re trying to extend your company’s reach.
Find the balance between:
technically sophisticated and simple + concise.
(see DO’s and DON’Ts)
Get it out there and ENGAGE!!
...and don’t build everything from scratch!
Leverage API proxy services and communities.
Get Listed - API Platforms
My favorite:
16k+ API’s
~150 real estate API’s
Zillow, Trulia, Placester, NYTimes, Onboard, CloudMLS, Retsly, CloudCMA, DotLoop,
StreetEasy, WalkScore, AgentRank, PropertyWala, FlexMLS, SimplyRETS, etc….
Make it Look Good!!
Have a Developer Portal
Make Signup Simple
Get to the “value conversation”!!
Have Great Documentation
Twilio, MailChimp, Django, Box
Provide Helpers
samples, SDKs, test tools, libraries
OR
Four Takeaways
Your API is a PRODUCT.
Design for the API User.
Simple. Concise. Usable.
Get to the Value Conversation.
pete@witlytic.com
@petergoldey
https://www.linkedin.com/in/petergoldey (keep going for DO’s and DON’Ts)
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T just expose your domain model…
...DO design for INTENT
DO understand how clients will use the API
DO expose answers to API user’s questions
DON’T require them to be domain experts
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T use custom when Standards exist!
DO build on HTTP (for quick and easy machine interpretation)
DO build on HTTPS (DON’T pass credentials in the open)
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T use custom when Standards exist!
DO use RESTful standards - such as naming of resources as nouns
where it makes sense!
DO use RESTful HTTP verbs GET, PUT, POST and DELETE and
respect their qualities.
DON’T abuse GET and POST!!!
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T use custom when Standards exist!
DO use JSON
DO add XML if you need to (if your API user’s work in Java or C tools, etc.)
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T use custom when Standards exist!
DON’T limit error codes to 200 and 500
DO use standard error codes (where possible)
DO add to them (where needed and useful)
DO use the right category (200, 300, 400, 500)
DO supply as much detail as possible (e.g. box api)
DO include a requestID
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T confuse Searching and Identifying!
DO provide multiple ways to search resources (API user intent)
A property as a sale, as a listing, as a location, etc.
DON’T provide multiple ways to identify resources
DO make identity unique
/properties/28199102
DO use redirection and refer to resources by canonical URL
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T ignore CACHING! (we did - huge mistake)
Caching is going to happen, and it’s a GOOD thing - if you help it.
DO of course be smart with your own internal caching
DO allow your API users to cache results
Fast. Efficient. Inexpensive.
DON’T allow your API users to cache without control!!
Freshness and Visibility concerns
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DO address “freshness” directly. Make it EASY.
DON’T require API user’s to parse a full response to determine
freshness.
DO use (and respect) Validators
If-Modified-Since in requests
Last-Modified in responses
DO consider using ETags
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T rely on POLLING! (if you have real estate data, you have
events)
DO bake events into your API
DO create event based resources
DO consider using REST hooks (subscription webhooks) so
developers can receive the latest data without polling.
MAYBE use Long Polling if you really need to.
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DON’T think only in terms of endpoints!
DON’T make them “search” again.
DO make it easy for API users to find the next resource.
DO use hypermedia controls to provide meaningful links between
resources
DO use canonical urls as resource identifiers
DO use hyperlinks to reference external resources and
information (that’s what they are for!)
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DO publish a change log. Period.
DO be internally consistent
DO use the same parameter and method names across resources
DON’T use extensions as the only means of content
negotiation / selecting media types
DON’T introduce multiple URL aliases for the same resource
(confusing / ambiguous hypermedia controls)
Some DO’s and DON’Ts
* I’m just as biased as the next guy...there are times to break all the rules!
DO NOT use wrapper objects in your responses
They are redundant in a well designed API
DO NOT put metadata in the response body
DO put it where it belongs - in the HTTP response header
there are so many more...

More Related Content

Viewers also liked

輕鬆「滑」進華語文教學~Part 1
輕鬆「滑」進華語文教學~Part 1輕鬆「滑」進華語文教學~Part 1
輕鬆「滑」進華語文教學~Part 1Lisa Tsai
 
Instalacion win 7 2
Instalacion  win   7 2Instalacion  win   7 2
Instalacion win 7 2JOHN REINOSO
 
Banco de archivos YULIANA MARIN 11*3
Banco de archivos YULIANA MARIN  11*3Banco de archivos YULIANA MARIN  11*3
Banco de archivos YULIANA MARIN 11*3oncetresgrj2014
 
Новый год на байкале 2015
Новый год на байкале 2015Новый год на байкале 2015
Новый год на байкале 2015Natasha Byliova
 
Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320
Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320
Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320Luz Elena Ornelas
 
Historia de los juegos olimpicos
Historia de los juegos olimpicosHistoria de los juegos olimpicos
Historia de los juegos olimpicosJENNIFER64035
 
Presentacion de powerpon
Presentacion de powerponPresentacion de powerpon
Presentacion de powerponrogelia18
 
Lizeht dahian guerrero lemos id 000314717c
Lizeht dahian guerrero lemos id 000314717cLizeht dahian guerrero lemos id 000314717c
Lizeht dahian guerrero lemos id 000314717cNatalia Florez
 
Горное великолепие
Горное великолепиеГорное великолепие
Горное великолепиеNatasha Byliova
 
Diagnóstico de problemas de hardware más comunes
Diagnóstico de problemas de hardware más comunesDiagnóstico de problemas de hardware más comunes
Diagnóstico de problemas de hardware más comunesmsalasmarcelo
 
250 maestrías para elegir sobre seguro
250 maestrías para elegir sobre seguro250 maestrías para elegir sobre seguro
250 maestrías para elegir sobre seguroPolitiquesUPF
 
Рождественские каникулы на Байкале 2015
Рождественские каникулы на Байкале 2015Рождественские каникулы на Байкале 2015
Рождественские каникулы на Байкале 2015Natasha Byliova
 

Viewers also liked (20)

輕鬆「滑」進華語文教學~Part 1
輕鬆「滑」進華語文教學~Part 1輕鬆「滑」進華語文教學~Part 1
輕鬆「滑」進華語文教學~Part 1
 
Instalacion win 7 2
Instalacion  win   7 2Instalacion  win   7 2
Instalacion win 7 2
 
Hoteles con encanto
Hoteles con encantoHoteles con encanto
Hoteles con encanto
 
Tips de educación
Tips de educaciónTips de educación
Tips de educación
 
TURISMO DECHIMBORAZO
TURISMO DECHIMBORAZOTURISMO DECHIMBORAZO
TURISMO DECHIMBORAZO
 
Banco de archivos YULIANA MARIN 11*3
Banco de archivos YULIANA MARIN  11*3Banco de archivos YULIANA MARIN  11*3
Banco de archivos YULIANA MARIN 11*3
 
De examen
De examenDe examen
De examen
 
Daniel ....[1]
Daniel ....[1]Daniel ....[1]
Daniel ....[1]
 
Universidad
UniversidadUniversidad
Universidad
 
Новый год на байкале 2015
Новый год на байкале 2015Новый год на байкале 2015
Новый год на байкале 2015
 
Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320
Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320
Guía inicio impresora multifuncional marca canon mf5960,mf5950,d1350,d1320
 
Historia de los juegos olimpicos
Historia de los juegos olimpicosHistoria de los juegos olimpicos
Historia de los juegos olimpicos
 
Presentacion de powerpon
Presentacion de powerponPresentacion de powerpon
Presentacion de powerpon
 
Coxinha deliciosa
Coxinha deliciosaCoxinha deliciosa
Coxinha deliciosa
 
Lizeht dahian guerrero lemos id 000314717c
Lizeht dahian guerrero lemos id 000314717cLizeht dahian guerrero lemos id 000314717c
Lizeht dahian guerrero lemos id 000314717c
 
Горное великолепие
Горное великолепиеГорное великолепие
Горное великолепие
 
Diagnóstico de problemas de hardware más comunes
Diagnóstico de problemas de hardware más comunesDiagnóstico de problemas de hardware más comunes
Diagnóstico de problemas de hardware más comunes
 
Lógica
LógicaLógica
Lógica
 
250 maestrías para elegir sobre seguro
250 maestrías para elegir sobre seguro250 maestrías para elegir sobre seguro
250 maestrías para elegir sobre seguro
 
Рождественские каникулы на Байкале 2015
Рождественские каникулы на Байкале 2015Рождественские каникулы на Байкале 2015
Рождественские каникулы на Байкале 2015
 

Similar to API's - Successes to Replicate. Pitfalls to Avoid.

Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Twilio Inc
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable ProductsDevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable ProductsBen Hall
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraCA API Management
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxapidays
 
Finding Anything: Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTankFinding Anything: Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTankYogiWanKenobi
 
Finding Anything: Real-time Search with IndexTank
Finding Anything:  Real-time Search with IndexTankFinding Anything:  Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTankYogiWanKenobi
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemMitch Colleran
 
API Design Tour with Digital River and Apigee - June 26th, 2012
API Design Tour with Digital River and Apigee - June 26th, 2012API Design Tour with Digital River and Apigee - June 26th, 2012
API Design Tour with Digital River and Apigee - June 26th, 2012rubes_mn
 
The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)Ontico
 
AI in Multi Billion Search Engines. Career building in AI / Search. What make...
AI in Multi Billion Search Engines. Career building in AI / Search. What make...AI in Multi Billion Search Engines. Career building in AI / Search. What make...
AI in Multi Billion Search Engines. Career building in AI / Search. What make...Andrei Lopatenko
 
SPC Master Power User SharePoint & Office 365
SPC Master Power User SharePoint & Office 365SPC Master Power User SharePoint & Office 365
SPC Master Power User SharePoint & Office 365Benjamin Niaulin
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxQA or the Highway
 
OrientDB Intro & HTTP REST API Tutorial
OrientDB Intro & HTTP REST API TutorialOrientDB Intro & HTTP REST API Tutorial
OrientDB Intro & HTTP REST API TutorialAnthony Blatner
 
Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Anya Stettler
 
API (Application program interface)
API (Application program interface)API (Application program interface)
API (Application program interface)Muhammad Jahanzaib
 

Similar to API's - Successes to Replicate. Pitfalls to Avoid. (20)

Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
Mulesoft Raml APIs
Mulesoft Raml APIsMulesoft Raml APIs
Mulesoft Raml APIs
 
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable ProductsDevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
 
API Design Tour: Digital River
API Design Tour: Digital RiverAPI Design Tour: Digital River
API Design Tour: Digital River
 
API ARU-ARU
API ARU-ARUAPI ARU-ARU
API ARU-ARU
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
Finding Anything: Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTankFinding Anything: Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTank
 
Finding Anything: Real-time Search with IndexTank
Finding Anything:  Real-time Search with IndexTankFinding Anything:  Real-time Search with IndexTank
Finding Anything: Real-time Search with IndexTank
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
 
API Design Tour with Digital River and Apigee - June 26th, 2012
API Design Tour with Digital River and Apigee - June 26th, 2012API Design Tour with Digital River and Apigee - June 26th, 2012
API Design Tour with Digital River and Apigee - June 26th, 2012
 
The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)
 
AI in Multi Billion Search Engines. Career building in AI / Search. What make...
AI in Multi Billion Search Engines. Career building in AI / Search. What make...AI in Multi Billion Search Engines. Career building in AI / Search. What make...
AI in Multi Billion Search Engines. Career building in AI / Search. What make...
 
SPC Master Power User SharePoint & Office 365
SPC Master Power User SharePoint & Office 365SPC Master Power User SharePoint & Office 365
SPC Master Power User SharePoint & Office 365
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
 
OrientDB Intro & HTTP REST API Tutorial
OrientDB Intro & HTTP REST API TutorialOrientDB Intro & HTTP REST API Tutorial
OrientDB Intro & HTTP REST API Tutorial
 
Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)
 
API (Application program interface)
API (Application program interface)API (Application program interface)
API (Application program interface)
 
Web API Design
Web API DesignWeb API Design
Web API Design
 

Recently uploaded

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

API's - Successes to Replicate. Pitfalls to Avoid.

  • 1. Real Estate API’s and me... Real Estate tech in the 90’s... pete@witlytic.com @petergoldey https://www.linkedin.com/in/p etergoldey public records / FOIA 10 Years of API’s @Onboard 2004 - Public Records 2005 - AVM 2008 - IDX Listings 2009 - Geography 2010 - Lifestlye Search 2011 - Area Search 2011 - Boundaries 2011 - Neighborhoods 2011 - Community / Schools 2011 - POI’s 2013 - Transit 2014 - Property API Suite Founder
  • 3. Have a Purpose Ours was: Delivery Innovation - recognized by Inman, RISmedia, RE Technology, 1000Watt. Why did we take a commercial API approach? - It gave us a vehicle for driving our business forward. 2011 Inman Connect But we made lots of mistakes…
  • 4. API’s are PRODUCTS listen to customers, research, marketing, support, customer feedback, relationship building, use cases, analytics, stories, value propositions, documentation, standards, utility, comprehensive testing, platform management, pricing, security, PR, evangelism, standards, reuse, stability, experience, purpose
  • 5. API Users vs API Designers Remember whom you are building for. Tailor your API accordingly. Internal? External? Developers? What kind? Who the users are tells you a lot. what they ask, what type of answers they expect, how they consume it, how often, etc
  • 6. Me in 2004 - API Designer Good looking Naive Knew the domain model REALLY well Data expert Designed for: ● Flexibility ● As many use cases as possible Built it for myself Assumptions Over engineered Building our Nearby Home Sales XML service
  • 7. The Awesomeness We Delivered 20+ parameters! Multivariate interactions!! Iterative search process!!! Excellent parameter documentation. No restrictions!! but we missed something big...
  • 8. We didn’t figure out the Right Questions
  • 9. Our Customers in 2005 API user says “Domain what?” Frustrated Busy Lazy Risk averse What they wanted: ● Use case solutions ○ Find comps ○ Drip marketing ○ No Dead Ends! Using our 1st Nearby Home Sales XML service
  • 10. What we did next…. Auto-increment from radius1 and radius2 ● Find nearest first. Ensure results. Added prioritization ● Time vs. Distance Added priceRangePercent ● Comps based on subject property Added fuzzy logic for comps ● Best match beds, baths, $, sqft Listened to clients. Understood their use cases. Made it easy. Created dateAdded ● Drip marketing trigger Created geography lookup for updates ● County level lastModified Created queryID and “requery” method. ● Saved searches method Added system and per account defaults ● Light weight. Central control.
  • 11. The Results? Happy clients. (more $$) “Better” usage. (save $$’s) Less implementation support. (save $$’s) Product Management (control) Happy internal engineers (culture) New mindset: design for the API user!!!
  • 12. Make it Useful!! Why will these guys use your API? They can find it (more on this later). It offers value (saves time or resources, cost, features) It looks “good” (quality, logic, use cases) Easy to use (version stable*, build for users, documentation, use features) * we’re not all like Facebook!!
  • 13. Make it Usable!! You’re trying to extend your company’s reach. Find the balance between: technically sophisticated and simple + concise. (see DO’s and DON’Ts)
  • 14. Get it out there and ENGAGE!! ...and don’t build everything from scratch! Leverage API proxy services and communities.
  • 15. Get Listed - API Platforms My favorite: 16k+ API’s ~150 real estate API’s Zillow, Trulia, Placester, NYTimes, Onboard, CloudMLS, Retsly, CloudCMA, DotLoop, StreetEasy, WalkScore, AgentRank, PropertyWala, FlexMLS, SimplyRETS, etc….
  • 16. Make it Look Good!! Have a Developer Portal Make Signup Simple Get to the “value conversation”!! Have Great Documentation Twilio, MailChimp, Django, Box Provide Helpers samples, SDKs, test tools, libraries OR
  • 17. Four Takeaways Your API is a PRODUCT. Design for the API User. Simple. Concise. Usable. Get to the Value Conversation. pete@witlytic.com @petergoldey https://www.linkedin.com/in/petergoldey (keep going for DO’s and DON’Ts)
  • 18. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T just expose your domain model… ...DO design for INTENT DO understand how clients will use the API DO expose answers to API user’s questions DON’T require them to be domain experts
  • 19. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T use custom when Standards exist! DO build on HTTP (for quick and easy machine interpretation) DO build on HTTPS (DON’T pass credentials in the open)
  • 20. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T use custom when Standards exist! DO use RESTful standards - such as naming of resources as nouns where it makes sense! DO use RESTful HTTP verbs GET, PUT, POST and DELETE and respect their qualities. DON’T abuse GET and POST!!!
  • 21. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T use custom when Standards exist! DO use JSON DO add XML if you need to (if your API user’s work in Java or C tools, etc.)
  • 22. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T use custom when Standards exist! DON’T limit error codes to 200 and 500 DO use standard error codes (where possible) DO add to them (where needed and useful) DO use the right category (200, 300, 400, 500) DO supply as much detail as possible (e.g. box api) DO include a requestID
  • 23. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T confuse Searching and Identifying! DO provide multiple ways to search resources (API user intent) A property as a sale, as a listing, as a location, etc. DON’T provide multiple ways to identify resources DO make identity unique /properties/28199102 DO use redirection and refer to resources by canonical URL
  • 24. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T ignore CACHING! (we did - huge mistake) Caching is going to happen, and it’s a GOOD thing - if you help it. DO of course be smart with your own internal caching DO allow your API users to cache results Fast. Efficient. Inexpensive. DON’T allow your API users to cache without control!! Freshness and Visibility concerns
  • 25. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DO address “freshness” directly. Make it EASY. DON’T require API user’s to parse a full response to determine freshness. DO use (and respect) Validators If-Modified-Since in requests Last-Modified in responses DO consider using ETags
  • 26. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T rely on POLLING! (if you have real estate data, you have events) DO bake events into your API DO create event based resources DO consider using REST hooks (subscription webhooks) so developers can receive the latest data without polling. MAYBE use Long Polling if you really need to.
  • 27. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DON’T think only in terms of endpoints! DON’T make them “search” again. DO make it easy for API users to find the next resource. DO use hypermedia controls to provide meaningful links between resources DO use canonical urls as resource identifiers DO use hyperlinks to reference external resources and information (that’s what they are for!)
  • 28. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DO publish a change log. Period. DO be internally consistent DO use the same parameter and method names across resources DON’T use extensions as the only means of content negotiation / selecting media types DON’T introduce multiple URL aliases for the same resource (confusing / ambiguous hypermedia controls)
  • 29. Some DO’s and DON’Ts * I’m just as biased as the next guy...there are times to break all the rules! DO NOT use wrapper objects in your responses They are redundant in a well designed API DO NOT put metadata in the response body DO put it where it belongs - in the HTTP response header there are so many more...