Providing an API for your modules can make them more popular, reduce support requests from your users, and help you find new uses for your code. In this session, you'll learn how to add APIs to your modules, special considerations for modules with APIs, and find out about the APIs your module has by default. We'll talk about security, validation, and how to release and document your APIs to make life easier on other developers. Adam Kalsey created the Activity Stream module to build lifestreaming services into Drupal. Activity Stream's API allows any developer to add third party services to a lifestream. This talk will use real-world code samples from Activity Stream and from Drupal Core.