Custom Module Separate Settings for Each User
You need to create module with .install file that would help you to create custom table where you can store individual user API key. I am sharing with you some code to achieve this. It should be something like that. Rest your code will be same you just need to make some minor changes like use return $form instead of return system_settings_form(). You also need to write hook_form_submit() function. 

Module Name: custom
1. custom.install

/**
 * Implements hook_install().
 */
function custom_install() {
    // Create tables.
    drupal_install_schema('custom_table');
}

/**
 * Implements hook_uninstall().
 */
function custom_uninstall() {
    // Drop tables.
    drupal_uninstall_schema('custom_table');
}

/**
 * Implements hook_schema().
 */
function custom_schema() {
  $schema = array();
    $schema['custom_table'] = array(
        'description' =&gt; 'Stored user api key',
        'fields' =&gt; array(
          'id' =&gt; array(
            'type' =&gt; 'serial',
            'not null' =&gt; TRUE,
            'description' =&gt; 'Primary Key: Unique ID.',
          ),
          'api_key' =&gt; array(
            'type' =&gt; 'varchar',
            'length' =&gt; 256,
            'default' =&gt; '',
            'not null' =&gt; TRUE,
            'description' =&gt; 'Store api key',
          ),
        ),  
    'primary key' =&gt; array('id'),
  );
  return $schema;
}


custom.module

/* Submit hook function for submission form. */
function custom_form_submit($form, &amp;$form_state) {
  // insert your api key in your custom table using db_insert() function or you can use db_merge() for both insert/update operation.
}