The Settings API, lets you define settings pages, sections within those pages, and fields within the sections.
The form posts to wp-admin/options.php which provides strick capabilities checking and users will need to ‘manage_options’ capability to submit the form.
These are my quick notes for personal use, and they only resume the official wp codex.
Setting API functions
register_setting( $option_group, $option_name , $sanitize_callback )
unregister_setting( $option_group, $option_name , $sanitize_callback )
add_settings_field( $id, $title, $callback, $page, $section, $args )
add_settings_section( $id, $title, $callback, $page )
setting_fields( $option_group )
do_settings_sections( $page )
do_settings_fields( $page, $section )
add_settings_error( $setting, $code, $message, $type )
get_settings_errors( $settings, $sanitize )
settings_errors( $setting, $sanitize, $hide_on_update )
unregister_setting( $option_group, $option_name , $sanitize_callback )
add_settings_field( $id, $title, $callback, $page, $section, $args )
add_settings_section( $id, $title, $callback, $page )
setting_fields( $option_group )
do_settings_sections( $page )
do_settings_fields( $page, $section )
add_settings_error( $setting, $code, $message, $type )
get_settings_errors( $settings, $sanitize )
settings_errors( $setting, $sanitize, $hide_on_update )