Usergrid iOS SDK

Getting Started

Installing the SDK

Building from Source

Usergrid SDK Reference with Examples

The 66 topics listed below are each documented in the Usergrid documentation and for each the docs provide an API reference and example for each of these clients: curl, iOS, Android, JavaScript, Ruby and Node.js.

Working with Collections

1. Creating collections

SDK Method

(ApigeeClientResponse *)apiRequest: (NSString *)url operation:(NSString *)op data:(NSString *)opData

Parameters

Parameter Description
url A fully-formed url in the following format: https://api.usergrid.com///
op The HTTP method - in this case, ‘POST’
opData No data is being sent, so the value is nil

Example Request/Response

Request:

-(NSString*)createCollection {

NSString *url = @"https://api.usergrid.com/your-org/your-app/items";
NSString *op = @"POST";
NSString *opData = nil;

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

    //call createEntity to initiate the API call
    ApigeeClientResponse *response = [appDelegate.dataClient apiRequest: url operation: op data: opData];

@try {
    //success
}
@catch (NSException * e) {
    //fail
}

}

Response:

{
  "action" : "post",
  "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
  "params" : { },
  "path" : "/items",
  "uri" : "http://api.usergrid.com/your-org/your-app/items",
  "entities" : [ ],
  "timestamp" : 1378857079220,
  "duration" : 31,
  "organization" : "your-org",
  "applicationName" : "your-app"
}

2. Retrieving collections

SDK Method

(ApigeeCollection*)getCollection:(NSString*)type

Parameters

Parameter Description
type The entity type associated with the collection to be retrieved

Example Request/Response

Request:

-(NSString*)getCollection {

    //specify the entity type that corresponds to the collection to be retrieved
    NSString *type = @"item";

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios

    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

    //Call getCollection: to initiate the API GET request
    ApigeeCollection *collection = [appDelegate.dataClient getCollection:@"book"];
}

Response:

{
      "action" : "get",
      "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
      "params" : { },
      "path" : "/items",
      "uri" : "http://api.usergrid.com/your-org/your-app/items",
      "entities" : [ {
            "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4",
            "type" : "item",
            "name" : "milk",
            "created" : 1378405020796,
            "modified" : 1378405020796,
            "metadata" : {
                  "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4"
            },
            "name" : "milk",
            "price" : "3.25"
      }, {
        "uuid" : "1a9356ba-1682-11e3-a72a-81581bbaf055",
        "type" : "item",
        "name" : "bread",
        "created" : 1378423379867,
        "modified" : 1378423379867,
        "metadata" : {
              "path" : "/items/1a9356ba-1682-11e3-a72a-81581bbaf055"
        },
        "name" : "bread",
        "price" : "2.50"
      } ],
      "timestamp" : 1378426821261,
      "duration" : 35,
      "organization" : "your-org",
      "applicationName" : "your-app",
      "count" : 2
}

3. Updating collections

SDK Method (ApigeeClientResponse *)apiRequest: (NSString *)url operation:(NSString *)op data:(NSString *)opData Properties Parameter Description url A fully-formed request url in the following format: https://api.usergrid.com////?ql= Note that you must include an empty ‘?ql=’ query string at the end of the URL

op The HTTP method - in this case, ‘PUT’ opData A JSON-formatted string that contains the entity properties to be updated Example Request/Response Show Code Request: -(NSString*)updateCollection {

NSString *url = @"https://api.usergrid.com/your-org/your-app/items/?ql";
NSString *op = @"PUT";
NSString *opData = @"{\"availability\":\"in-stock\"}"; //we escape the quotes

//we recommend you call ApigeeClient from your AppDelegate.
//for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
//create an instance of AppDelegate
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

//call apiRequest to initiate the API call
ApigeeClientResponse *response = [appDelegate.dataClient apiRequest: url operation: op data: opData];

@try {
    //success
}
@catch (NSException * e) {
    //fail
}

}

Response: { “action” : “put”, “application” : “f34f4222-a166-11e2-a7f7-02e81adcf3d0”, “params” : { “ql” : [ “” ] }, “path” : “/items”, “uri” : “http://api.usergrid.com/your-org/your-app/items”, “entities” : [ { “uuid” : “31847b9a-1a62-11e3-be04-8d05e96f700d”, “type” : “item”, “name” : “milk”, “price” : “3.25”, “availability” : “in-stock” “created” : 1378849479113, “modified” : 1378849567301, “name” : “milk”, }, { “uuid” : “3192ac6a-1a62-11e3-a24f-496ca1d42ce7”, “type” : “item”, “name” : “bread”, “price” : “4.00”, “availability” : “in-stock” “created” : 1378849479206, “modified” : 1378849567351, “name” : “bread”, } ], “timestamp” : 1378849567280, “duration” : 207, “organization” : “your-org”, “applicationName” : “your-app” }

4. Deleting collections

SDK Method (ApigeeClientResponse *)apiRequest: (NSString *)url operation:(NSString *)op data:(NSString *)opData Properties Parameter Description url A fully-formed url in the following format: https://api.usergrid.com////?ql= Note that you must include an empty ‘?ql=’ query string at the end of the URL

op The HTTP method - in this case, ‘DELETE’ opData No data is being sent, so the value is nil Example Request/Response The following example will delete the first 5 entities in a collection.

Show Code Request: -(NSString*)deleteCollection {

NSString *url = @"https://api.usergrid.com/your-org/your-app/items/?ql='limit=5'";
NSString *op = @"DELETE";
NSString *opData = nil;

//we recommend you call ApigeeClient from your AppDelegate.
//for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
//create an instance of AppDelegate
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

//call createEntity to initiate the API call
ApigeeClientResponse *response = [appDelegate.dataClient apiRequest: url operation: op data: opData];

@try {
    //success
}
@catch (NSException * e) {
    //fail
}

}

Response: { “action” : “delete”, “application” : “f34f4222-a166-11e2-a7f7-02e81adcf3d0”, “params” : { “ql” : [ “” ] }, “path” : “/items”, “uri” : “http://api.usergrid.com/your-org/your-app/items”, “entities” : [ { “uuid” : “53fe3700-0abe-11e3-b1f7-1bd100b8059e”, “type” : “item”, “name” : “milk”, “price” : “3.25”, “created” : 1377129832047, “modified” : 1377129832047, “metadata” : { “path” : “/items/53fe3700-0abe-11e3-b1f7-1bd100b8059e” }, “name” : “milk” }, { “uuid” : “5ae1fa7a-0abe-11e3-89ab-6be0003c809b”, “type” : “item”, “name” : “bread”, “price” : “4.00”, “created” : 1377129843607, “modified” : 1377129843607, “metadata” : { “path” : “/items/5ae1fa7a-0abe-11e3-89ab-6be0003c809b” }, “name” : “bread” } ], “timestamp” : 1378848117272, “duration” : 12275, “organization” : “your-org”, “applicationName” : “your-app” }

Working with Entities

5. Creating a custom entity

SDK Method (ApigeeClientResponse *)createEntity:(NSDictionary *)newEntity Parameters Parameter Description newEntity NSDictionary object that contains the entity properties Example Request/Response Show Code Request: -(NSString*)newEntity {

//create an entity object
NSMutableDictionary *entity = [[NSMutableDictionary alloc] init ];

//Set entity properties
[entity setObject:@"item" forKey:@"type"]; //Required. New entity type to create
[entity setObject:@"milk" forKey:@"name"];
[entity setObject:@"3.25" forKey:@"price"];

//we recommend you call ApigeeClient from your AppDelegate.
//for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
//create an instance of AppDelegate
AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

//call createEntity to initiate the API call
ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];

@try {
    //success
}
@catch (NSException * e) {
    //fail
}

}

Response: { “action” : “post”, “application” : “4a1edb70-d7a8-11e2-9ce3-f315e5aa568a”, “params” : { }, “path” : “/items”, “uri” : “http://api.usergrid.com/my-org/my-app/items”, “entities” : [ { “uuid” : “83e9b7ea-e8f5-11e2-84df-e94123890c7a”, “type” : “item”, “name” : “milk”, “created” : 1373415195230, “modified” : 1373415195230, “metadata” : {

            "path" : "/items/83e9b7ea-e8f5-11e2-84df-e94123890c7a"
        },
        "name" : "milk",
        "price" : "3.25"
    } ],
    "timestamp" : 1373415195225,
    "duration" : 635,
    "organization" : "my-org",
    "applicationName" : "my-app"
}

6. Creating multiple custom entities

Request Syntax curl -X POST https://api.usergrid.com//// -d ‘[{}, {}, ...]’ Parameters Parameter Description org Organization UUID or name app Application UUID or name entity_type Custom entity type to create. API Services will create a corresponding collection if one does not already exist. To add an entity to an existing collections, use the collection name or colleciton UUID in place of the entity type. entity Comma-separated list of entity objects to create. Each object should be formatted as a comma-separated list of entity properties, formatted as key-value pairs in the format : Example Request/Response Show Code Request: curl -X POST “https://api.usergrid.com/your-org/your-app/item” -d ‘[{“name”:”milk”, “price”:”3.25”}, {“name”:”bread”, “price”:”2.50”}]’ Response: { “action” : “post”, “application” : “f34f4222-a166-11e2-a7f7-02e9sjwsf3d0”, “params” : { }, “path” : “/items”, “uri” : “http://api.usergrid.com/your-org/your-app/items”, “entities” : [ { “uuid” : “f3a8061a-ef0b-11e2-9e92-5f4a65c16193”, “type” : “item”, “name” : “milk”, “price” : “3.25”, “created” : 1374084538609, “modified” : 1374084538609, “metadata” : { “path” : “/multis/f3a8061a-ef0b-11e2-9e92-5f4a65c16193” }, “name” : “milk” }, { “uuid” : “f3be262a-ef0b-11e2-a51b-6715d5ef47a6”, “type” : “item”, “name” : “bread”, “price” : “2.50”, “created” : 1374084538754, “modified” : 1374084538754, “metadata” : { “path” : “/items/f3be262a-ef0b-11e2-a51b-6715d5ef47a6” }, “name” : “bread” } ], “timestamp” : 1374084538584, “duration” : 388, “organization” : “your-org”, “applicationName” : “your-app” }

7. Creating an entity with sub-properties

SDK Method (ApigeeClientResponse *)createEntity:(NSDictionary *)newEntity Parameters Parameter Description newEntity NSMutableDictionary object that contains the entity properties Example Request/Response Show Code Request: -(NSString*)newEntity {

//Initialize an object for the new entity to be created
NSMutableDictionary *entity = [ [NSMutableDictionary alloc] init ];

//Initialize an object for each nested variety object
NSMutableDictionary *variety_1 = [ [NSMutableDictionary alloc] init ];
NSMutableDictionary *variety_2 = [ [NSMutableDictionary alloc] init ];
NSMutableDictionary *variety_3 = [ [NSMutableDictionary alloc] init ];

//Initialize an array to hold the nested variety objects
NSMutableArray *variety_list = [ [NSMutableArray alloc] init];

[variety_1 setObject:@"1%" forKey:@"name"];
[variety_1 setObject:@"3.25" forKey:@"price"];
[variety_1 setObject:@"0393847575533445" forKey:@"sku"];

[variety_2 setObject:@"whole" forKey:@"name"];
[variety_2 setObject:@"3.85" forKey:@"price"];
[variety_2 setObject:@"0393394956788445" forKey:@"sku"];

[variety_3 setObject:@"skim" forKey:@"name"];
[variety_3 setObject:@"4.00" forKey:@"price"];
[variety_3 setObject:@"0390299933488445" forKey:@"sku"];

//Add the variety objects to the array
[variety_list addObject:variety_1];
[variety_list addObject:variety_2];
[variety_list addObject:variety_3];

//Set the item entity properties
[entity setObject:@"item" forKey:@"type"]; //Required. New entity type to create
[entity setObject:@"milk" forKey:@"name"];

//Set the variety_list array as the value of the 'varieties' property
[entity setObject:variety_list forKey:@"varieties"];

//we recommend you call ApigeeClient from your AppDelegate.
//for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
//create an instance of AppDelegate
AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

//call createEntity to initiate the API call
ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];

@try {
    //success
}
@catch (NSException * e) {
    //fail
}

}

Response: { “action” : “post”, “application” : “f34f4222-a166-11e2-a7f7-02e81adcf3d0”, “params” : { }, “path” : “/items”, “uri” : “http://api.usergrid.com/your-org/your-app/items”, “entities” : [ { “uuid” : “0d7cf92a-effb-11e2-917d-c5e707256e71”, “type” : “item”, “name” : “milk”, “created” : 1374187231666, “modified” : 1374187231666, “metadata” : { “path” : “/items/0d7cf92a-effb-11e2-917d-c5e707256e71” }, “name” : “milk”, “varieties” : [ { “name” : “1%”, “price” : “3.25”, “SKU” : “0393847575533445” }, { “name” : “whole”, “price” : “3.85”, “SKU” : “0393394956788445” }, { “name” : “skim”, “price” : “4.00”, “SKU” : “0390299933488445” } ] } ], “timestamp” : 1374187450826, “duration” : 50, “organization” : “your-org”, “applicationName” : “your-app” }

8. Retrieving an entity

SDK Method

(ApigeeClientResponse *)getEntities: (NSString *)endpoint query:(NSString *)query

Properties

Parameter Description
endpoint The collection and entity identifier of the entity to be retrieved.
query An optional query string. Requests for a specific entity should set the value to nil

Endpoint exported in the following format: /

Example Request/Response

Request:

-(NSString*)getEntity {

    //specify the entity collection and UUID or name to be retrieved
    NSString *endpoint = @"items/b3aad0a4-f322-11e2-a9c1-999e12039f87";

    NSString *query = nil;

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    //call getEntities to initiate the API call
    ApigeeClientResponse *response = [appDelegate.dataClient getEntities:endpoint queryString:query];

    @try {
        //success
    }

    @catch (NSException * e) {
        //fail
    }

}

Response:

{
    "action" : "get",
    "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
    "params" : { },
    "path" : "/items",
    "uri" : "http://api.usergrid.com/amuramoto/sandbox/items",
    "entities" : [ {
        "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4",
        "type" : "item",
        "name" : "milk",
        "created" : 1378405020796,
        "modified" : 1378405020796,
        "metadata" : {
              "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4"
        },
        "name" : "milk",
        "price" : "3.25"
    } ],
    "timestamp" : 1378405025763,
    "duration" : 31,
    "organization" : "amuramoto",
    "applicationName" : "sandbox"
}

9. Retrieving multiple entities

SDK Method

(ApigeeClientResponse *)getEntities: (NSString *)type queryString:(NSString *)queryString

Properties

Parameter Description
type The entity type being retrieved
queryString A query string of entity properties to be matched for the entities to be retrieved.

Query string is expected in the following format: = OR = OR ...

Example Request/Response

Request:

-(NSString*)getEntity {

//specify the entity type to be retrieved
NSString *type = @"item";

//specify the uuid of the entity to be retrieved in a query string
NSString *query = @"uuid = b3aad0a4-f322-11e2-a9c1-999e12039f87 or name = 'bread'";

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    //call createEntity to initiate the API call
    ApigeeClientResponse *response = [appDelegate.dataClient getEntities:type queryString:query];

@try {
    //success
}
@catch (NSException * e) {
    //fail
}

}

Response:

{
      "action" : "get",
      "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
      "params" : {
            "ql" : [ "name='milk' OR UUID=1a9356ba-1682-11e3-a72a-81581bbaf055" ]
      },
      "path" : "/items",
      "uri" : "http://api.usergrid.com/your-org/your-app/items",
      "entities" : [ {
            "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4",
            "type" : "item",
            "name" : "milk",
            "created" : 1378405020796,
            "modified" : 1378405020796,
            "metadata" : {
                  "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4"
        },
            "name" : "milk",
            "price" : "3.25"
      }, {
        "uuid" : "1a9356ba-1682-11e3-a72a-81581bbaf055",
        "type" : "item",
        "name" : "bread",
        "created" : 1378423379867,
        "modified" : 1378423379867,
        "metadata" : {
              "path" : "/items/1a9356ba-1682-11e3-a72a-81581bbaf055"
        },
            "name" : "bread",
            "price" : "2.50"
      } ],
      "timestamp" : 1378423793729,
      "duration" : 63,
      "organization" : "your-org",
      "applicationName" : "your-app",
      "count" : 2
}

10. Updating an entity

SDK Method

(ApigeeClientResponse *)updateEntity: (NSString *)entityID entity:(NSDictionary *)updatedEntity

Parameters

Parameter Description
entityID UUID of the entity to be updated
updatedEntity NSMutableDictionary containing the properties to be updated

Example Request/Response

Request:

-(NSString*)updateEntity {

    //UUID of the entity to be updated
    NSString *entityID = @"f42752aa-08fe-11e3-8268-5bd5fa5f701f";

    //Create an entity object
    NSMutableDictionary *updatedEntity = [ [NSMutableDictionary alloc] init ];

    //Set entity properties to be updated
    [updatedEntity setObject:@"item" forKey:@"type"]; //Required - entity type
    [updatedEntity setObject:@"in-stock" forKey:@"availability"];
    [updatedEntity setObject:@"4.00" forKey:@"price"];

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

    //call updateEntity to initiate the API call
    ApigeeClientResponse *response = [appDelegate.dataClient updateEntity:entityID entity:updatedEntity];

    @try {

       //success

    }
    @catch (NSException * e) {
        //fail
    }

}

Response:

{
  "action" : "put",
  "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
  "params" : { },
  "path" : "/items",
  "uri" : "http://api.usergrid.com/your-org/your-app/items",
  "entities" : [ {
    "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4",
    "type" : "item",
    "name" : "milk",
    "created" : 1378405020796,
    "modified" : 1378505705077,
    "availability" : "in-stock",
    "metadata" : {
      "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4"
    },
    "name" : "milk",
    "price" : "4.00"
  } ],
  "timestamp" : 1378505705050,
  "duration" : 87,
  "organization" : "your-org",
  "applicationName" : "your-app"
}

11. Updating a sub-property

SDK Method

(ApigeeClientResponse *)updateEntity: (NSString *)entityID entity:(NSDictionary *)updatedEntity

Parameters

Parameter Description
entityID UUID of the entity to be updated
updatedEntity Entity object containing the properties to be updated

Example Request/Response

Request:

-(NSString*)updateEntity {

    //UUID of the entity to be updated
    NSString *entityID = @"f42752aa-08fe-11e3-8268-5bd5fa5f701f";

    //Define our two sub-properties to include in the update
    NSMutableDictionary *subproperty1 = [ [NSMutableDictionary alloc] init];
    NSMutableDictionary *subproperty2 = [ [NSMutableDictionary alloc] init];
    [subproperty1 setObject:@"1%" forKey:@"name"];
    [subproperty1 setObject:@"3.25" forKey:@"price"];
    [subproperty2 setObject:@"whole" forKey:@"name"];
    [subproperty2 setObject:@"4.00" forKey:@"price"];

    //Put our sub-properties into an NSArray
    NSArray *subproperties = [ [NSArray alloc] initWithObjects:props1,props2, nil];

    //Create an NSMutableDictionary to hold our updates
    NSMutableDictionary *updatedEntity = [ [NSMutableDictionary alloc] init ];

    //Set the properties to be updated
    [updatedEntity setObject:@"item" forKey:@"type"]; //Required - entity type
    [updatedEntity setObject:props forKey:@"varieties"];

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate];

    //call createEntity to initiate the API call
    ApigeeClientResponse *response = [appDelegate.dataClient updateEntity:entityID entity:updatedEntity];

    @try {

       //success

    }
    @catch (NSException * e) {
        //fail
    }

}

Response:

{
  "action" : "put",
  "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
  "params" : { },
  "path" : "/items",
  "uri" : "http://api.usergrid.com/your-org/your-app/items",
  "entities" : [ {
    "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4",
    "type" : "item",
    "name" : "milk",
    "created" : 1378405020796,
    "modified" : 1378761459069,
    "availability" : "in-stock",
    "metadata" : {
      "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4"
    },
    "name" : "milk",
    "uri" : "http://api.usergrid.com/your-org/your-app/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4",
    "varieties" : [ {
      "name" : "1%",
      "price" : "3.25"
    }, {
      "name" : "whole",
      "price" : "4.00"
    } ]
  } ],
  "timestamp" : 1378761459047,
  "duration" : 62,
  "organization" : "your-org",
  "applicationName" : "your-app"
}

12. Deleting data entities

SDK Method

(ApigeeClientResponse *)removeEntity: (NSString *)type entityID:(NSString *)entityID

Properties

Parameter Description
type The entity type being deleted
entityID The UUID or name of the entity to be removed

Example Request/Response

Request:

-(NSString*)deleteEntity {

    //specify the entity type to be deleted
    NSString *type = @"item";

    //specify the uuid or name of the entity to be deleted
    NSString *entityId = @"milk";

    //we recommend you call ApigeeClient from your AppDelegate.
    //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios
    //create an instance of AppDelegate
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    //call removeEntity to initiate the API call
    ApigeeClientResponse *response = [appDelegate.dataClient removeEntity:type entityID:entityId];

    @try {
        //success
    }
    @catch (NSException * e) {
        //fail
    }
}

Response:

{
  "action" : "delete",
  "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0",
  "params" : { },
  "path" : "/items",
  "uri" : "http://api.usergrid.com/your-org/your-app/items",
  "entities" : [ {
    "uuid" : "328fe64a-19a0-11e3-8a2a-ebc6f49d1fc4",
    "type" : "item",
    "name" : "milk",
    "created" : 1378766158500,
    "modified" : 1378766158500,
    "metadata" : {
      "path" : "/items/328fe64a-19a0-11e3-8a2a-ebc6f49d1fc4"
    },
    "name" : "milk",
    "price" : "3.25"
  } ],
  "timestamp" : 1378766172016,
  "duration" : 324,
  "organization" : "your-org",
  "applicationName" : "your-app"
}

Data Queries

13. Querying your data

Entity Connections

14. Connecting users other data

15. Retrieving user connection data

16. Disconnecting entities

Permissions & Roles

17. Assigning permissions

18. Removing permissions

19. Assigning permissions

20. Removing permissions

21. Creating roles

22. Assigning roles

23. Removing roles

Authentication

24. Application user authentication (user login)

25. Application client authentication

26. Admin user authentication

27. Organization client authentication

28. Revoking tokens (user logout)

Working with Users & Groups

Activities & Feeds

37. Posting a user activity

38. Posting an activity to a group

39. Creating an activity for a user’s followers in a group

40. Retrieving a user’s activity feed

41. Retrieving a group’s activity feed

Events & Counters

42. Creating & incrementing counters

43. Retrieving counters

44. Retrieving counters by time interval

Managing Orgs & Apps

46. Creating an organization

47. Getting an organization

48. Activating an organization

49. Reactivating an organization

50. Generating organization client credentials

51. Retrieving organization client credentials

52. Getting an organization’s activity feed

53. Getting the applications in an organization

54. Getting the admin users in an organization

55. Removing an admin user from an organization

56. Creating an organization application

57. Generating application credentials

58. Getting application credentials

Managing Admin Users

59. Creating an admin user

60. Updating an admin user

61. Getting an admin user

62. Setting an admin user’s password

63. Resetting an admin user’s password

64. Activating an admin user

65. Reactivating an admin user

66. Getting an admin user’s activity feed