API design and documentation