Data Upload API Resource

The /etl/pull API resource that was used for data upload is no longer supported.
https://secure.gooddata.com/gdc/md/{project_id}/etl/pull

The resource was replaced with the /etl/pull2 resource. /etl/pull2 is asynchronous, allows for a faster data upload and helps avoid time-outs.

For more information about the API call for data upload, see API documentation about Start data upload and Poll to get data upload status.

Migrate to /etl/pull2

If you use custom code to call the /etl/pull resource, change it to use /etl/pull2.

  • Change the URL from /etl/pull to /etl/pull2:
    https://secure.gooddata.com/gdc/md/{project_id}/etl/pull2
  • The request body for /etl/pull2 is the same as for the /etl/pull:
    {"pullIntegration": "{directory_with_upload_package}"}
  • Note the following differences:

    Resource/etl/pull2/etl/pull
    Response body

    {
       "pull2Task" : {
          "links" : {
             "poll" : "/gdc/md/{project_id}/tasks/{task_id}/status"
          }
       }
    }

    {
       "pullTask" : {
          "uri" : "/gdc/md/{project_id}/etl/task/{task_id}"
       }
    }

    Status code for success201200
    Resource for polling on task status

    {
       "wTaskStatus" : {
          "status" : "'OK' | 'CANCELED' | 'ERROR' | 'RUNNING'",
          "poll" : "/gdc/md/{project_id}/tasks/{task_id}/status",
          "links" : {
             "poll" : "/gdc/md/{project_id}/tasks/{task_id}/status"
          },
          "messages" : [ {
             "error" : {
                "component" : "{component}",
                "errorClass" : "{error_class}"
                "message" : "{message_with_parameter_placeholders}"
                "parameters" : [
                   "{parameter1}", "{parameter2}",
                ],
                "requestId" : "{request_id}",
                "data" : "{optional_user_data}"
             }
          } ]
       }
    }

    Note: The error structure is returned only when "status" is ERROR.
    Otherwise, the error structure is not present.

    {
       "taskStatus": "OK | ERROR | WARNING"

    }
  • If an error happens, review the upload_status.json file, which is located in the same directory as the data file you uploaded.