Retrieving resource data FAQ

I want to set the time for the Key3 property item for the following data as shown below using a Query when calling an API to retrieve resource data. Is there a way to search data using the time set for Key3?
[
   {Key1:a,Key2:b,Key3:2015-07-21 10:00},
   {Key1:d,Key2:e,Key3:2015-07-21 11:00}
]

While (ISO8601 format) times with Body text registered can be compared with filter operators, times registered within Body text cannot be compared using filter operators. Times can be compared as long as they are written as whole numbers. As a result, it is recommended that times written to the Body text are written as whole numbers in the manner shown below.
Example of Body text registered: (registered at 12:00)
{
"KeyArray":[
   {"Key1":"a","Key2":"b","Key3_date":150721,"Key3_time":1000},
   {"Key1":"d","Key2":"e","Key3_date":150721,"Key3_time":1100},
   {"Key1":"g","Key2":"h","Key3_date":150721,"Key3_time":1200}
]
}
Search example: (Searches covering the period from 10:00 to 11:00)
http://<BaseURI>/v1/<Resource path>/_past?$KeyArray.Key3_date eq 150721
and (KeyArray.Key3_time ge 1000 and KeyArray.Key3_date le 1100
In this instance, KeyArrays matching the conditions set will be returned in whole. While you can extract the necessary information from within an application, this information can also be extracted when calling the API by using the select function supported from version 3 onwards.
Is there a limit to the number of data items that can be acquired with a single API use?
If such restrictions apply, how should we continue to acquire data with subsequent API uses?
The most amount of data that can be acquired with a single API use is 1,000. Even if the amount of data is less than 1,000 items, you will not be able to acquire all data with a single API use when the total size of the data being acquired exceeds 16 MB.
You can acquire data from the 1,000th data item onwards by using the top and skip variables. For example, if 2,000 data items are registered, use “<Resourcepath>?$top=1000&$skip=1000” to acquire data items 1,001 to 2,000.
You can also retrieve items by specifying conditions in a filter search.
While I understand that two API uses are required to acquire 2,000 registered data items that match the search conditions for data acquisition, are there return values for the first API call that can be used to determine continuous calls?
Use either of the following methods to confirm whether 1,000 or more matching data items are registered.
・Acquire the number of data items by performing searches with the _count option.
・Refer to the Body part when a 400 response is returned as data acquisition results using _past.

The following message will show that the number of data items is 1,000 or more.
{"errors":[{"message":"number of response-data is larger than 1000.","acceptable_top": XXXX}]}
Both and (logical product) and or (logical sum) are available as filter condition operators.
Is not (logical negation) also available?
No, logical NOT is not available.
Use ne (inequality sign), etc. in place of this.

For example, if you prefer to negate (Key1=A and Key2=B), this is the equivalent of key1≠A or key2≠B.
Therefore, use $fiter=key1 ne 'A' or key2 ne 'B'
Registering data that consists of a whole number: long value and searching for this using a resource data search API returns the resource data value in exponential format as shown below.
Is this system designed to return registered data consisting of a whole number:long value in exponential format?
・Registered data
{・・・,"data":1451891730932,・・・}

・Returned data
{・・・,"data":1.451891730932e+12,・・・}
Specifications concerning the numerical values that can be handled within the JSON data Body are as follows. The following information is also provided in the API User Guide.

Whole numbers: -999999~999999
Real numbers: 17 significant figures (the 18th significant figure onwards isrounded off)

Whole numbers outside the above-mentioned range can be written up to 17 significant figures, but values written outside this range will appear in exponential format when retrieved.
When searching for resource data, a 503 HTTP status code is sometimes returned, and data cannot be acquired. What could be causing this?
The system may have been temporarily overloaded. Please wait a moment and try again.

If a 503 response is still given when retrying, a large amount of data may be stored to a single resource. To avoid this, try the following:
・Narrow down searches by specifying the date in search conditions to reduce the number matching items
・Delete unnecessary resource data
・Take care so as not to store large amounts of data in a single resource (distribute and store data over various resources). Further, you can also delete unnecessary resource data by shortening the retention period for resource data.

The amount of data leading to a 503 response is returned will vary depending on the system in use. For this reason, a specific value cannot be provided here but, as a general rule, we recommend keeping the amount of data stored to a resource to 1 GB or less.