Programmatically pass parameters to Apache Solr integrated with Search API
After digging deep into the search_api_solr module I found a spot where it's applying options to the solr parameters inside the search method of the SearchApiSolrBackend class here

  foreach ($options as $option =&gt; $value) {
    if (strpos($option, 'solr_param_') === 0) {
      $solarium_query-&gt;addParam(substr($option, 11), $value);
    }
  }


I noticed that it only applies the parameter if it's preceded by 'solr_param_' and if it is it strips out the 'solr_param_' before applying it to the actual parameter.
All I had to do was add 'solr_param_' to the beginning of my option like so.

$query-&gt;setOption('solr_param_spellcheck','true');


Once I did that, getAllExtraData() returned what I needed.


  array(1) { ["search_api_solr_response"]=> array(2) { ["response"]=>
  array(4) { ["numFound"]=> int(0) ["start"]=> int(0) ["maxScore"]=>
  float(0) ["docs"]=> array(0) { } } ["spellcheck"]=> array(1) {
  ["suggestions"]=> array(16) { [0]=> string(5) "goood" [1]=> array(4) {
  ["numFound"]=> int(1) ["startOffset"]=> int(11) ["endOffset"]=>
  int(16) ["suggestion"]=> array(1) { [0]=> string(4) "good" } } [2]=>
  string(5) "goood" [3]=> array(4) { ["numFound"]=> int(1)
  ["startOffset"]=> int(42) ["endOffset"]=> int(47) ["suggestion"]=>
  array(1) { [0]=> string(4) "good" } } [4]=> string(5) "goood" [5]=>
  array(4) { ["numFound"]=> int(1) ["startOffset"]=> int(60)
  ["endOffset"]=> int(65) ["suggestion"]=> array(1) { [0]=> string(4)
  "good" } } [6]=> string(5) "goood" [7]=> array(4) { ["numFound"]=>
  int(1) ["startOffset"]=> int(93) ["endOffset"]=> int(98)
  ["suggestion"]=> array(1) { [0]=> string(4) "good" } } [8]=> string(5)
  "goood" [9]=> array(4) { ["numFound"]=> int(1) ["startOffset"]=>
  int(111) ["endOffset"]=> int(116) ["suggestion"]=> array(1) { [0]=>
  string(4) "good" } } [10]=> string(5) "goood" [11]=> array(4) {
  ["numFound"]=> int(1) ["startOffset"]=> int(129) ["endOffset"]=>
  int(134) ["suggestion"]=> array(1) { [0]=> string(4) "good" } } [12]=>
  string(5) "goood" [13]=> array(4) { ["numFound"]=> int(1)
  ["startOffset"]=> int(154) ["endOffset"]=> int(159) ["suggestion"]=>
  array(1) { [0]=> string(4) "good" } } [14]=> string(5) "goood" [15]=>
  array(4) { ["numFound"]=> int(1) ["startOffset"]=> int(182)
  ["endOffset"]=> int(187) ["suggestion"]=> array(1) { [0]=> string(4)
  "good" } } } } } }


Not entirely sure why I have so many duplicate results here so if anyone has input on that that would be helpful. Otherwise I do have the data I need.