Was this helpful?

General questions

What is API BaaS?

One of the components of the Apigee Edge platform, API BaaS is a powerful, cloud-based backend as a service (BaaS) that provides app developers with features to easily enrich their Web and mobile apps, while speeding development. Features include a flexible data store, social graph functionality, geolocation, user management, push notifications, client authentication, performance monitoring, and more, all available via a RESTful API.

For more details on everything API BaaS has to offer, see API BaaS features.

What's the difference between API BaaS and Usergrid?

Usergrid is an open source project that provides a highly-scalable backend as a service for powering mobile applications. API BaaS is an Apigee-hosted fork of Usergrid, which includes additional features not available in Usergrid, including push notifications, app monitoring, A/B testing, and more.

Because Usergrid is the core of API BaaS, you may still find mentions of Usergrid in Apigee documentation, samples, and elsewhere. For example, API BaaS is still accessed by sending HTTP requests to api.usergrid.com.

The full open source distribution of Usergrid can be downloaded from Github.

How do I sign-up for Apigee's API BaaS?

To use API BaaS, you will need a free Apigee developer account. Register now!

Once you're signed-up, check out Using a Sandbox Application for tips on using your account's included sandbox application, and Creating a New Application with the Admin Console for information on how to create additional applications.

Are there any limits on the number of API calls I can make to API BaaS?

Nope! There are no usage limits for API BaaS; make as many calls as you need.

Data store

How much data can I store in Apigee's API BaaS?

Free Apigee Developer accounts include 25GB of storage at no cost. Tiered pricing is available for additional storage.

How is data stored in API BaaS?

Apigee's API BaaS stores all data as JSON-formatted objects. This means that just about anything can be stored in API BaaS, including files, user data, application data, binary data, and more. If it can be represented in JSON, it can be stored in API BaaS.

On the backend, API BaaS stores all data in a NoSQL database that runs Apache Cassandra. Not familiar with NoSQL or Cassandra? Read our overview of the API BaaS DBMS for more information.

How can I optimize my usage to get the most out of my NoSQL data store?

Storing data in a NoSQL database creates unique benefits, but also requires a slightly different approach to storing and retrieving data from a traditional RDBMS such as MySQL. For more information, see our article on optimizing access to your data store.

Can collections be deleted?

Currently, collections are immutable, but you can remove all of the data entities from a collection. For more information see Default Data Entities.

Push notifications

Is there a limit to how many push notifications I can send at one time?

No, but for best performance we suggest you limit the number of push notifications to 10,000 per single request. If you need to send the same message to more than 10K devices, we suggest that you break up up the devices into batches (for example, use groups), and send each batch. You can also potentially speed up the delivery of all the messages by sending notifications in parallel.

Is there a limit to how many push notifications I can send per month?

Free Apigee Developer accounts include 10 million push notifications per month at no cost. Tiered pricing is available for additional capacity.

I’ve got millions of devices to send notifications to. What’s the best way to send the notifications?

To drive the most engagement, our suggestion is to send highly targeted push notifications to small groups of individuals. Also, scheduling the push notifications to be sent at certain times (for example, lunchtime, before work, or just after work) will increase the effectiveness of the notifications. You can schedule your push notifications throughout the day based on your customers' geographic locations.

What are the state stages for a notification message?

A push notification passes through the several states during its life. You can get information about a notification's current state from the admin portal, on the Message History panel.

The possible states are listed in the following table:

State Description
CREATED The notification was created in the system.
SCHEDULED The notification has been scheduled for delivery.
STARTED The system has started to send the notification.
FINISHED The system has finished sending the notification.
EXPIRED The notification time expired. The notification will no longer be sent.
CANCELED The notification was canceled and will not be sent.
FAILED The system was unable to send the notification.

The normal flow from state to state is as follows:

CREATED > SCHEDULED > STARTED > FINISHED | FAILED | CANCELED | EXPIRED

App Monitoring (formerly Mobile Analytics)

What happened to Mobile Analytics?

Apigee's Mobile Analytics product has now been fully integrated into API Services as app monitoring. All of the features of Mobile Analytics are fully available using the SDKs for iOS and Android.

For more information on using app monitoring features with the SDK, see Monitoring app usage data.

Why don't I see a crash report after experiencing a crash?

  • The app wasn't re-started after the crash. Crash reports are uploaded when the app is re-started after a crash.
  • iOS The app was launched by Xcode. Crash reporting is disabled when the app is launched by Xcode because the debugger interferes with crash detection.

Why don't I see errors reported?

  • iOS or JavaScript The app isn't reporting any errors. Apigee-provided macros (in iOS) or functions (in JavaScript) must be used to log errors.
  • iOS You can turn on the monitoring option (using the ApigeeMonitoringOptions class) by setting autoPromoteLoggedErrors to YES. That way, any NSLog statement whose message begins with "error:" will automatically be identified as an error and reported as such.
  • iOS If there are other crash reporting frameworks running in your app, you must disable them. Only one crash reporting framework/library can be active in your application.
  • iOS Our crash detection functionality only supports Objective-C. We cannot generate crash reports for crashes occuring in C or C++ calls.

I'm not seeing anything show up in the portal. How can I tell if the client SDK is sending any data to the server?

  • Look at the console in the developer tool you're using to see what the log messages indicate.
  • iOS You can turn on the monitoring option (using the ApigeeMonitoringOptions class) by setting showDebuggingInfo to YES. That way, you can see detailed debugging output in the Xcode console.

Why don't I see any data for my networking calls?

  • Android You must make some minor code changes to allow our Android SDK to "see" the network activity.
  • iOS If your app is using something other than NSURLConnection or NSURLSession (iOS 7), you must make some minor code changes to allow our iOS SDK to "see" the network activity.

How much lag time is there between the activity on the device and when it's displayed in the portal?

  • Crash reports are uploaded to the server when the app is re-started.
  • App usage data is uploaded to the server when the app is started.
  • Logging and network activity is uploaded to the server in intervals. That interval defaults to 60 seconds.
  • Once data is received by the server, it can take another 1 or 2 minutes before it's displayed in our portal.

SDKs

Do you offer SDKs?

Yes! You can access the services from your mobile or Web app using our SDKs, available for the following platforms:

  • Javascript/HTML5
  • iOS
  • Android
  • Node.js
  • Ruby
  • .NET

To download an SDK, visit our SDK download page.

How do I integrate an Apigee SDK into my app?

See the complete list of install guides availabe on our SDK download page.

What are the system requirements to build the iOS SDK from source?

Xcode 5.0 (or later). Xcode 5 requires Mac OS X Mountain Lion (or later).

What are the system requirements to integrate the iOS SDK into my iOS application?

  • Xcode 4.x (support for iOS 5.0 or later). Xcode requires Mac OS X.

Can I get the source for your SDK?

Absolutely! All of our SDKs are open source and available on Github.

Add new comment

Provide your email address if you wish to be contacted offline about your comment.
We will not display your email address as part of your comment.

We'd love your feedback and perspective! Please be as specific as possible.
Type the characters you see in this picture. (verify using audio)

Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.