         go null, transform result
 
   requestExec = (ast, go) ->
-    doPost '/1/Rapids.json', { ast: ast }, (error, result) ->
+    doPost '/3/Rapids', { ast: ast }, (error, result) ->
       if error
         go error
       else

    models

  requestModels = (go, opts) ->
    requestWithOpts '/3/Models.json', opts, (error, result) ->
      if error
        go error, result
      else
        go error, patchUpModels result.models

  requestModel = (key, go) ->
    doGet "/3/Models.json/#{encodeURIComponent key}", (error, result) ->
      if error
        go error, result
      else
        go error, head patchUpModels result.models

  requestDeleteModel = (key, go) ->
    doDelete "/3/Models.json/#{encodeURIComponent key}", go

  requestModelBuilders = (go) ->
    doGet "/3/ModelBuilders.json", go

  requestModelBuilder = (algo, go) ->
    doGet "/3/ModelBuilders.json/#{algo}", go

  requestModelInputValidation = (algo, parameters, go) ->
    doPost "/3/ModelBuilders.json/#{algo}/parameters", (encodeObjectForPost parameters), go

  requestModelBuild = (algo, parameters, go) ->
    _.trackEvent 'model', algo
    doPost "/3/ModelBuilders.json/#{algo}", (encodeObjectForPost parameters), go

  requestPredict = (destinationKey, modelKey, frameKey, go) ->
    opts = if destinationKey

    try
      [ root, version, name ] = path.split '/'
      [ base, other ] = name.split '?'
      if base isnt 'Typeahead' and base isnt 'Jobs'
        _.trackEvent 'api', base, version
    catch e

