Let the platform do the work

How to Export a List of Records

Overview

An example in bash script demonstrating how to export a list of records using the v11 /<module>/export/:record_list_id REST GET endpoint.

Exporting Records

Authenticating

First, you will need to authenticate to the Sugar API. An example is shown below:

  curl -X POST -H Cache-Control:no-cache -H "Content-Type: application/json" -d '{ 
 "grant_type":"password",
 "client_id":"sugar",
 "client_secret":"",
 "username":"admin",
 "password":"password",
 "platform":"custom_api"
}' https://{site_url}/rest/v11/oauth2/token

More information on authenticating can be found in the How to Authenticate and Log Out example and /oauth2/logout endpoint documentation.

Filtering Records

Next, we will need to identify the records we want to export using the /<module>/filter endpoint.

  curl -s -X POST -H OAuth-Token:{access_token} -H "Content-Type: application/json" -H Cache-Control:no-cache -d '{  
   "filter":[  
      {  
         "$or":[  
            {  
               "name":{  
                  "$starts":"A"
               }
            },
            {  
               "name":{  
                  "$starts":"b"
               }
            }
         ]
      }
   ],
   "max_num":2,
   "offset":0,
   "fields":"id",
   "order_by":"date_entered",
   "favorites":false,
   "my_items":false
}' https://{site_url}/rest/v11/Accounts/filter

More information on the filter API can be found in the /<module>/filter documentation.

Response

The data received from the server is shown below:

  {  
   "next_offset":2,
   "records":[  
      {  
         "id":"f16760a4-3a52-f77d-1522-5703ca28925f",
         "date_modified":"2016-04-05T10:23:28-04:00",
         "_acl":{  
            "fields":{  

            }
         },
         "_module":"Accounts"
      },
      {  
         "id":"ec409fbb-2b22-4f32-7fa1-5703caf78dc3",
         "date_modified":"2016-04-05T10:23:28-04:00",
         "_acl":{  
            "fields":{  

            }
         },
         "_module":"Accounts"
      }
   ]
}

Creating a Record List

Once we have the list of ids, we then need to create a record list in Sugar that consists of those ids.

  curl -s -X POST -H OAuth-Token:{access_token} -H "Content-Type: application/json" -H Cache-Control:no-cache -d '{  
   "records":[  
      "f16760a4-3a52-f77d-1522-5703ca28925f",
      "ec409fbb-2b22-4f32-7fa1-5703caf78dc3"
   ]
}' https://{site_url}/rest/v11/Accounts/record_list

Response

The data received from the server is shown below:

  {  
   "id":"ef963176-4845-bc55-b03e-570430b4173c",
   "assigned_user_id":"1",
   "module_name":"Accounts",
   "records":[  
      "f16760a4-3a52-f77d-1522-5703ca28925f",
      "ec409fbb-2b22-4f32-7fa1-5703caf78dc3"
   ],
   "date_modified":"2016-04-05 21:39:19"
}

Exporting Records

Once we have the record list created, we can then export the CSV file.

  curl -i -s -X GET -H OAuth-Token:{access_token} -H Cache-Control:no-cache https://{site_url}/rest/v11/Accounts/export/ef963176-4845-bc55-b03e-570430b4173c

More information on exporting records can be found in the /<module>/export/:record_list_id documentation.

Response

The data received from the server is shown below:

  HTTP/1.1 200 OK 
Date: Tue, 05 Apr 2016 21:50:32 
GMT Server: Apache/2.2.29 (Unix) 
DAV/2 PHP/5.3.29 mod_ssl/2.2.29 
OpenSSL/0.9.8zg X-Powered-By: 
PHP/5.3.29 Expires: 
Cache-Control: max-age=10, 
private Pragma: 
Content-Disposition: attachment; filename=Accounts.csv 
Content-transfer-encoding: binary 
Last-Modified: Tue, 05 Apr 2016 21:50:32 
GMT ETag: 9b34f5d74e0298aaf7fd1f27d02e14f2 
Content-Length: 1703 
Connection: close 
Content-Type: application/octet-stream; charset=ISO-8859-1 
"Name","ID","Website","Office Phone","Alternate Phone","Fax","Billing Street","Billing City","Billing State","Billing Postal Code","Billing Country","Shipping Street","Shipping City","Shipping State","Shipping Postal Code","Shipping Country","Description","Type","Industry","Annual Revenue","Employees","SIC Code","Ticker Symbol","Parent Account ID","Ownership","Campaign ID","Rating","Assigned User Name","Assigned User ID","Team ID","Teams","Team Set ID","Date Created","Date Modified","Modified By Name","Modified By ID","Created By","Created By ID","Deleted","test","Facebook Account","Twitter Account","Google Plus ID","DUNS","Email","Invalid Email","Email Opt Out","Non-primary emails" 
"Arts & Crafts Inc","ec409fbb-2b22-4f32-7fa1-5703caf78dc3","www.hrinfo.tw","(252) 456-8602","","","777 West Filmore Ln","Los Angeles","CA","77076","USA","777 West Filmore Ln","Los Angeles","CA","77076","USA","","Customer","Hospitality","","","","","","","","","Max Jensen","seed_max_id","West","West, East, Global","dec43cb2-5273-8be2-968a-5703cadee75f","2016-04-05 10:23","2016-04-05 10:23","Administrator","1","Administrator","1","0","","","","","","sugar.sugar.section@example.org","0","0","dev.phone@example.biz,0,0" 
"B.H. Edwards Inc","f16760a4-3a52-f77d-1522-5703ca28925f","www.sectiondev.edu","(361) 765-0216","","","111 Silicon Valley Road","Persistance","CA","29709","USA","111 Silicon Valley Road","Persistance","CA","29709","USA","","Customer","Apparel","","","","","","","","","Sally Bronsen","seed_sally_id","West","West","West","2016-04-05 10:23","2016-04-05 10:23","Administrator","1","Administrator","1","0","","","","","","info.sugar@example.de","0","1","phone.sales.section@example.tv,0,0"

You can also output the results directly to a CSV file by omitting the header data and output the results directly to a new CSV file.

  curl -s -X GET -H OAuth-Token:{access_token} -H -H Cache-Control:no-cache https://{site_url}/rest/v11/Accounts/export/ef963176-4845-bc55-b03e-570430b4173c > Output.csv