You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@predictionio.apache.org by gi...@apache.org on 2018/09/20 19:08:42 UTC

[15/16] predictionio-site git commit: Documentation based on apache/predictionio#6c607aa23f2ffaf70f5ba50bdc9bff11f5ebc345

http://git-wip-us.apache.org/repos/asf/predictionio-site/blob/9fe018b6/datacollection/batchimport/index.html
----------------------------------------------------------------------
diff --git a/datacollection/batchimport/index.html b/datacollection/batchimport/index.html
index 299392f..5bc0f36 100644
--- a/datacollection/batchimport/index.html
+++ b/datacollection/batchimport/index.html
@@ -7,7 +7,7 @@
 </span><span class="p">{</span><span class="s2">"event"</span><span class="p">:</span><span class="s2">"rate"</span><span class="p">,</span><span class="s2">"entityType"</span><span class="p">:</span><span class="s2">"user"</span><span class="p">,</span><span class="s2">"entityId"</span><span class="p">:</span><span class="s2">"3"</span><span class="p">,</span><span class="s2">"targetEntityType"</span><span class="p">:</span><span class="s2">"item"</span><span class="p">,</span><span class="s2">"targetEntityId"</span><span class="p">:</span><span class="s2">"2"</span><span class="p">,</span><span class="s2">"properties"</span><span class="p">:{</span><span class="s2">"rating"</span><span class="p">:</span><span class="mf">1.0</span><span class="p">},</span><span class="s2">"eventTime"</span><span class="p">:</span><span class="s2">"2014-11-21T01:04:14.729Z"</span><span class="p">}</span><span class="w">
 </span><span class="p">{</span><span class="s2">"event"</span><span class="p">:</span><span class="s2">"buy"</span><span class="p">,</span><span class="s2">"entityType"</span><span class="p">:</span><span class="s2">"user"</span><span class="p">,</span><span class="s2">"entityId"</span><span class="p">:</span><span class="s2">"3"</span><span class="p">,</span><span class="s2">"targetEntityType"</span><span class="p">:</span><span class="s2">"item"</span><span class="p">,</span><span class="s2">"targetEntityId"</span><span class="p">:</span><span class="s2">"7"</span><span class="p">,</span><span class="s2">"eventTime"</span><span class="p">:</span><span class="s2">"2014-11-21T01:04:14.735Z"</span><span class="p">}</span><span class="w">
 </span><span class="p">{</span><span class="s2">"event"</span><span class="p">:</span><span class="s2">"buy"</span><span class="p">,</span><span class="s2">"entityType"</span><span class="p">:</span><span class="s2">"user"</span><span class="p">,</span><span class="s2">"entityId"</span><span class="p">:</span><span class="s2">"3"</span><span class="p">,</span><span class="s2">"targetEntityType"</span><span class="p">:</span><span class="s2">"item"</span><span class="p">,</span><span class="s2">"targetEntityId"</span><span class="p">:</span><span class="s2">"8"</span><span class="p">,</span><span class="s2">"eventTime"</span><span class="p">:</span><span class="s2">"2014-11-21T01:04:14.741Z"</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div> <div class="alert-message warning"><p>Please make sure your import file does not contain any empty lines. Empty lines will be treated as a null object and will return an error during import.</p></div><h2 id='use-sdk-to-prepare-batch-input-file' class='header-anchors'>Use SDK to Prepare Batch Input File</h2><p>Some of the Apache PredictionIO SDKs also provides FileExporter client. You may use them to prepare the JSON file as described above. The FileExporter creates event in the same way as EventClient except that the events are written to a JSON file instead of being sent to EventSever. The written JSON file can then be used by batch import.</p><div class="tabs"> <ul class="control"> <li data-lang="php"><a href="#tab-be0bda0a-f9c6-41fc-8f7e-c4a40bed10d4">PHP SDK</a></li> <li data-lang="python"><a href="#tab-aa74be4e-1e29-427c-990f-2a33de0a4c85">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-4014721b-61d2-42af-a720-5d88c9a83394">
 Ruby SDK</a></li> <li data-lang="java"><a href="#tab-7f61e6f4-ed1f-4818-b73c-6aaf6e3fc995">Java SDK</a></li> </ul> <div data-tab="PHP SDK" data-lang="php" id="tab-be0bda0a-f9c6-41fc-8f7e-c4a40bed10d4"> (coming soon) </div> <div data-tab="Python SDK" data-lang="python" id="tab-aa74be4e-1e29-427c-990f-2a33de0a4c85"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</span></pre></td></tr></tbody></table> </div> <div class="alert-message warning"><p>Please make sure your import file does not contain any empty lines. Empty lines will be treated as a null object and will return an error during import.</p></div><h2 id='use-sdk-to-prepare-batch-input-file' class='header-anchors'>Use SDK to Prepare Batch Input File</h2><p>Some of the Apache PredictionIO SDKs also provides FileExporter client. You may use them to prepare the JSON file as described above. The FileExporter creates event in the same way as EventClient except that the events are written to a JSON file instead of being sent to EventSever. The written JSON file can then be used by batch import.</p><div class="tabs"> <ul class="control"> <li data-lang="php"><a href="#tab-dd40da8c-5f72-4ead-b857-8490662c15dd">PHP SDK</a></li> <li data-lang="python"><a href="#tab-361f01ce-7bbf-4831-b18a-01a91a2da4bf">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-165fd3f9-5d24-4b27-b733-7493a82d480f">
 Ruby SDK</a></li> <li data-lang="java"><a href="#tab-ec958936-a13a-4a12-b44b-35bba413622d">Java SDK</a></li> </ul> <div data-tab="PHP SDK" data-lang="php" id="tab-dd40da8c-5f72-4ead-b857-8490662c15dd"> (coming soon) </div> <div data-tab="Python SDK" data-lang="python" id="tab-361f01ce-7bbf-4831-b18a-01a91a2da4bf"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -58,7 +58,7 @@
 <span class="c"># close the FileExporter when finish writing all events</span>
 <span class="n">exporter</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-4014721b-61d2-42af-a720-5d88c9a83394"> (coming soon) </div> <div data-tab="Java SDK" data-lang="java" id="tab-7f61e6f4-ed1f-4818-b73c-6aaf6e3fc995"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-165fd3f9-5d24-4b27-b733-7493a82d480f"> (coming soon) </div> <div data-tab="Java SDK" data-lang="java" id="tab-ec958936-a13a-4a12-b44b-35bba413622d"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
 </pre></td> </tr></tbody></table> </div> </div> </div> <h2 id='import-events-from-input-file' class='header-anchors'>Import Events from Input File</h2><p>Importing events from a file can be done easily using the command line interface. Assuming that <code>pio</code> be in your search path, your App ID be <code>123</code>, and the input file <code>my_events.json</code> be in your current working directory:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>pio import --appid 123 --input my_events.json
 </pre></td></tr></tbody></table> </div> <p>After a brief while, the tool should return to the console without any error. Congratulations! You have successfully imported your events.</p></div></div></div></div><footer><div class="container"><div class="seperator"></div><div class="row"><div class="col-md-6 footer-link-column"><div class="footer-link-column-row"><h4>Community</h4><ul><li><a href="//predictionio.apache.org/install/" target="blank">Download</a></li><li><a href="//predictionio.apache.org/" target="blank">Docs</a></li><li><a href="//github.com/apache/predictionio" target="blank">GitHub</a></li><li><a href="mailto:user-subscribe@predictionio.apache.org" target="blank">Subscribe to User Mailing List</a></li><li><a href="//stackoverflow.com/questions/tagged/predictionio" target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 footer-link-column"><div class="footer-link-column-row"><h4>Contribute</h4><ul><li><a href="//predictionio.apache.org/community/cont
 ribute-code/" target="blank">Contribute</a></li><li><a href="//github.com/apache/predictionio" target="blank">Source Code</a></li><li><a href="//issues.apache.org/jira/browse/PIO" target="blank">Bug Tracker</a></li><li><a href="mailto:dev-subscribe@predictionio.apache.org" target="blank">Subscribe to Development Mailing List</a></li></ul></div></div></div><div class="row"><div class="col-md-12 footer-link-column"><p>Apache PredictionIO, PredictionIO, Apache, the Apache feather logo, and the Apache PredictionIO project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p><p>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div><div id="footer-bottom"><div class="container"><div class="row"><div class="col-md-12"><div id="footer-logo-wrapper"><img alt="PredictionIO" src="/images/logos/logo-white-d1e9c6e6.png"/><span>®</span></div><div id="socia
 l-icons-wrapper"><a class="github-button" href="https://github.com/apache/predictionio" data-icon="octicon-star" data-show-count="true" aria-label="Star apache/predictionio on GitHub">Star</a> <a class="github-button" href="https://github.com/apache/predictionio/fork" data-icon="octicon-repo-forked" data-show-count="true" aria-label="Fork apache/predictionio on GitHub">Fork</a> <script id="github-bjs" async="" defer="" src="https://buttons.github.io/buttons.js"></script><a href="https://twitter.com/predictionio" target="blank"><img alt="PredictionIO on Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a href="https://www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on Facebook" src="/images/icons/facebook-5c57939c.png"/></a> </div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
 (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);

http://git-wip-us.apache.org/repos/asf/predictionio-site/blob/9fe018b6/datacollection/channel/index.html
----------------------------------------------------------------------
diff --git a/datacollection/channel/index.html b/datacollection/channel/index.html
index 1b11286..a17f7f3 100644
--- a/datacollection/channel/index.html
+++ b/datacollection/channel/index.html
@@ -12,7 +12,7 @@
 [INFO] [App$]     Channel Name: myChannel
 [INFO] [App$]       Channel ID: 2
 [INFO] [App$]           App ID: 5
-</span></pre></td></tr></tbody></table> </div> <p>Now &quot;myChannel&quot; is created and ready for collecting data.</p><h2 id='collect-data-through-channel' class='header-anchors'>Collect data through Channel</h2><p>The Event API support optional <code>channel</code> query parameter. This allows you to import and query events of the specified channel. When the <code>channel</code> parameter is not specified, the data is collected through the default channel.</p><p>URL: <code>http://localhost:7070/events.json?accessKey=yourAccessKeyString&amp;channel=yourChannelName</code></p><p>Query parameters:</p> <table><thead> <tr> <th style="text-align: left">Field</th> <th style="text-align: left">Type</th> <th style="text-align: left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: left"><code>accessKey</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The Access Key for your App</td> </tr> <tr> <td style="text-align: left"><code>channel</c
 ode></td> <td style="text-align: left">String</td> <td style="text-align: left">The channel name (optional). Specify this to import data to this channel. <strong>NOTE: supported in PIO version &gt;= 0.9.2</strong> only. Channel must be created first.</td> </tr> </tbody></table> <p>For SDK usage, one EventClient should be responsible for collecting data of one specific channel. The channel name is specified when the EventClient object is instantiated.</p><p>For example, the following code import event to &quot;YOUR_CHANNEL&quot; of the corresponding App.</p><div class="tabs"> <ul class="control"> <li data-lang="bash"><a href="#tab-dea451ee-fdb1-41d2-b15e-1c668676ec16">Raw HTTP</a></li> <li data-lang="php"><a href="#tab-56ae1b9d-6a6e-468c-9e20-e89d2931aa5b">PHP SDK</a></li> <li data-lang="python"><a href="#tab-3c927adc-88e7-400f-b04e-baa939204c4f">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-faaaddd4-4fb0-4328-87b5-8404385a9968">Ruby SDK</a></li> <li data-lang="java"><a href
 ="#tab-540d3043-a0a8-4b50-83c3-7030d524e11c">Java SDK</a></li> </ul> <div data-tab="Raw HTTP" data-lang="bash" id="tab-dea451ee-fdb1-41d2-b15e-1c668676ec16"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</span></pre></td></tr></tbody></table> </div> <p>Now &quot;myChannel&quot; is created and ready for collecting data.</p><h2 id='collect-data-through-channel' class='header-anchors'>Collect data through Channel</h2><p>The Event API support optional <code>channel</code> query parameter. This allows you to import and query events of the specified channel. When the <code>channel</code> parameter is not specified, the data is collected through the default channel.</p><p>URL: <code>http://localhost:7070/events.json?accessKey=yourAccessKeyString&amp;channel=yourChannelName</code></p><p>Query parameters:</p> <table><thead> <tr> <th style="text-align: left">Field</th> <th style="text-align: left">Type</th> <th style="text-align: left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: left"><code>accessKey</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The Access Key for your App</td> </tr> <tr> <td style="text-align: left"><code>channel</c
 ode></td> <td style="text-align: left">String</td> <td style="text-align: left">The channel name (optional). Specify this to import data to this channel. <strong>NOTE: supported in PIO version &gt;= 0.9.2</strong> only. Channel must be created first.</td> </tr> </tbody></table> <p>For SDK usage, one EventClient should be responsible for collecting data of one specific channel. The channel name is specified when the EventClient object is instantiated.</p><p>For example, the following code import event to &quot;YOUR_CHANNEL&quot; of the corresponding App.</p><div class="tabs"> <ul class="control"> <li data-lang="bash"><a href="#tab-f384d253-aef1-414b-95c4-f65f6b355158">Raw HTTP</a></li> <li data-lang="php"><a href="#tab-39afb84b-78a5-4070-9c5e-0b5d26c4a61e">PHP SDK</a></li> <li data-lang="python"><a href="#tab-65dbdf81-86fa-4665-ad7e-8f0b1d4c1aab">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-af9d205f-5cfa-4037-a87f-415d4daaa8a8">Ruby SDK</a></li> <li data-lang="java"><a href
 ="#tab-f0e66c60-c46a-41bc-862a-fc62420bcb14">Java SDK</a></li> </ul> <div data-tab="Raw HTTP" data-lang="bash" id="tab-f384d253-aef1-414b-95c4-f65f6b355158"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -39,7 +39,7 @@
   },
   "eventTime" : "2004-12-13T21:39:45.618Z"
 }'</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-56ae1b9d-6a6e-468c-9e20-e89d2931aa5b"> (TODO: update me) </div> <div data-tab="Python SDK" data-lang="python" id="tab-3c927adc-88e7-400f-b04e-baa939204c4f"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-39afb84b-78a5-4070-9c5e-0b5d26c4a61e"> (TODO: update me) </div> <div data-tab="Python SDK" data-lang="python" id="tab-65dbdf81-86fa-4665-ad7e-8f0b1d4c1aab"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -80,7 +80,7 @@
     <span class="n">properties</span><span class="o">=</span><span class="n">event_properties</span><span class="p">,</span>
     <span class="n">event_time</span><span class="o">=</span><span class="n">datetime</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">21</span><span class="p">,</span> <span class="mi">38</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mi">618000</span><span class="p">,</span> <span class="n">pytz</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span>
 
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-faaaddd4-4fb0-4328-87b5-8404385a9968"> (TODO: update me) </div> <div data-tab="Java SDK" data-lang="java" id="tab-540d3043-a0a8-4b50-83c3-7030d524e11c"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-af9d205f-5cfa-4037-a87f-415d4daaa8a8"> (TODO: update me) </div> <div data-tab="Java SDK" data-lang="java" id="tab-f0e66c60-c46a-41bc-862a-fc62420bcb14"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
 </pre></td> </tr></tbody></table> </div> </div> </div> <p>You can also follow the EventAPI <a href="/datacollection/eventapi/#debugging-recipes">debug receipts</a> to query the events of specific channel by adding the <code>channel</code> query parameter in the URL.</p><h2 id='delete-a-channel-(including-all-imported-data)' class='header-anchors'>Delete a Channel (including all imported data)</h2><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>pio app channel-delete &lt;app name&gt; &lt;channel name&gt;
 </pre></td></tr></tbody></table> </div> <h2 id='delete-the-data-only-of-a-channel' class='header-anchors'>Delete the data-only of a Channel</h2><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>pio app data-delete &lt;app name&gt; --channel &lt;channel name&gt;
 </pre></td></tr></tbody></table> </div> <h2 id='accessing-channel-data-in-engine' class='header-anchors'>Accessing Channel Data in Engine</h2><p>To acccess channel data, simply specify the channel name when use the PEventStore or LEventStore API. Data is read from from the default channel if channelName is not specified.</p><p>For example, read data from default channel:</p><div class="highlight scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1

http://git-wip-us.apache.org/repos/asf/predictionio-site/blob/9fe018b6/datacollection/eventapi/index.html
----------------------------------------------------------------------
diff --git a/datacollection/eventapi/index.html b/datacollection/eventapi/index.html
index bc8de21..0744b9d 100644
--- a/datacollection/eventapi/index.html
+++ b/datacollection/eventapi/index.html
@@ -22,7 +22,7 @@ Content-Length: 18
 <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span>         Name: MyTestApp
 <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span>           ID: 6
 <span class="o">[</span>INFO] <span class="o">[</span>App<span class="nv">$]</span>   Access Key: WPgcXKd42FPQpZHVbVeMyqF4CQJUnXQmIMTHhX3ZUrSzvy1KXJjdFUrslifa9rnB
-</pre></td></tr></tbody></table> </div> <h3 id='creating-your-first-event' class='header-anchors'>Creating Your First Event</h3><p>You may connect to the Event Server with HTTP request or by using one of many <strong>Apache PredictionIO SDKs</strong>.</p><p>For example, the following shows how one can create an event involving a single entity. Replace the value of <code>accessKey</code> by the <em>Access Key</em> generated for your App.</p><div class="tabs"> <ul class="control"> <li data-lang="bash"><a href="#tab-b9f3ee84-8379-4152-94e7-ce35e204eb5e">Raw HTTP</a></li> <li data-lang="php"><a href="#tab-8c0bc1d5-de11-45e9-ba65-bb9cbbdab766">PHP SDK</a></li> <li data-lang="python"><a href="#tab-4e486ed0-3435-4cbb-95bc-dd775f4b5e8f">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-b7829541-688b-438a-bb65-0f428d2b71d3">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-2cbea880-0da6-41f2-965b-5fefeb6e8062">Java SDK</a></li> </ul> <div data-tab="Raw HTTP" data-lang="bash" id="tab-
 b9f3ee84-8379-4152-94e7-ce35e204eb5e"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td></tr></tbody></table> </div> <h3 id='creating-your-first-event' class='header-anchors'>Creating Your First Event</h3><p>You may connect to the Event Server with HTTP request or by using one of many <strong>Apache PredictionIO SDKs</strong>.</p><p>For example, the following shows how one can create an event involving a single entity. Replace the value of <code>accessKey</code> by the <em>Access Key</em> generated for your App.</p><div class="tabs"> <ul class="control"> <li data-lang="bash"><a href="#tab-bd15ec31-82a2-4e14-8276-1260c04d689d">Raw HTTP</a></li> <li data-lang="php"><a href="#tab-64e01bad-e186-4bee-9884-938c809d025a">PHP SDK</a></li> <li data-lang="python"><a href="#tab-091fc1ce-b982-4022-8768-bac4357f082c">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-16405fb2-5daf-4e55-af83-925f9197ab32">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-385a78a2-81bd-47f4-93f4-17f9a8b394a2">Java SDK</a></li> </ul> <div data-tab="Raw HTTP" data-lang="bash" id="tab-
 bd15ec31-82a2-4e14-8276-1260c04d689d"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -53,7 +53,7 @@ Content-Length: 18
   }
   "eventTime" : "2004-12-13T21:39:45.618-07:00"
 }'</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-8c0bc1d5-de11-45e9-ba65-bb9cbbdab766"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-64e01bad-e186-4bee-9884-938c809d025a"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -94,7 +94,7 @@ Content-Length: 18
                         <span class="s1">'eventTime'</span> <span class="o">=&gt;</span> <span class="s1">'2004-12-13T21:39:45.618-07:00'</span>
                        <span class="p">));</span>
 <span class="cp">?&gt;</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-4e486ed0-3435-4cbb-95bc-dd775f4b5e8f"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-091fc1ce-b982-4022-8768-bac4357f082c"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -137,7 +137,7 @@ Content-Length: 18
     <span class="n">properties</span><span class="o">=</span><span class="n">first_event_properties</span><span class="p">,</span>
     <span class="n">event_time</span><span class="o">=</span><span class="n">first_event_time</span><span class="p">,</span>
 <span class="p">)</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-b7829541-688b-438a-bb65-0f428d2b71d3"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-16405fb2-5daf-4e55-af83-925f9197ab32"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -158,8 +158,8 @@ Content-Length: 18
                                             <span class="s1">'prop4'</span> <span class="o">=&gt;</span> <span class="kp">true</span><span class="p">,</span>
                                             <span class="s1">'prop5'</span> <span class="o">=&gt;</span> <span class="sx">%w(a b c)</span><span class="p">,</span>
                                             <span class="s1">'prop6'</span> <span class="o">=&gt;</span> <span class="mi">4</span><span class="o">.</span><span class="mi">56</span> <span class="p">})</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-2cbea880-0da6-41f2-965b-5fefeb6e8062"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
-</pre></td> </tr></tbody></table> </div> </div> </div> <p>For example, the following shows how one can create an event involving two entities (with <code>targetEntity</code>).</p><div class="tabs"> <ul class="control"> <li data-lang="bash"><a href="#tab-8ac56e28-4899-4f7c-af55-5525fe4fcdf5">Raw HTTP</a></li> <li data-lang="php"><a href="#tab-f594af16-d577-43c1-a67a-ae6491be7f16">PHP SDK</a></li> <li data-lang="python"><a href="#tab-26f7a7ec-27b4-4a49-b0c1-d8f8cfe84c27">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-bb8562e0-949d-428d-951b-5f9553feb9b7">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-80f1a001-920a-469e-bb08-140c8cece9b2">Java SDK</a></li> </ul> <div data-tab="Raw HTTP" data-lang="bash" id="tab-8ac56e28-4899-4f7c-af55-5525fe4fcdf5"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-385a78a2-81bd-47f4-93f4-17f9a8b394a2"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
+</pre></td> </tr></tbody></table> </div> </div> </div> <p>For example, the following shows how one can create an event involving two entities (with <code>targetEntity</code>).</p><div class="tabs"> <ul class="control"> <li data-lang="bash"><a href="#tab-6460c7af-12bd-408c-868b-7977d59aeaba">Raw HTTP</a></li> <li data-lang="php"><a href="#tab-42a715ab-f009-4567-9da5-1ac7f265a30f">PHP SDK</a></li> <li data-lang="python"><a href="#tab-f0834e76-ff69-4c22-930d-7a60f24a246d">Python SDK</a></li> <li data-lang="ruby"><a href="#tab-26e856b6-eed2-431c-ac3b-ac45feca1086">Ruby SDK</a></li> <li data-lang="java"><a href="#tab-30fd4990-7d44-4cf9-a0c0-de69faa4fe27">Java SDK</a></li> </ul> <div data-tab="Raw HTTP" data-lang="bash" id="tab-6460c7af-12bd-408c-868b-7977d59aeaba"> <div class="highlight shell"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -186,7 +186,7 @@ Content-Length: 18
   },
   "eventTime" : "2004-12-13T21:39:45.618Z"
 }'</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-f594af16-d577-43c1-a67a-ae6491be7f16"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="PHP SDK" data-lang="php" id="tab-42a715ab-f009-4567-9da5-1ac7f265a30f"> <div class="highlight php"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -221,7 +221,7 @@ Content-Length: 18
                         <span class="s1">'eventTime'</span> <span class="o">=&gt;</span> <span class="s1">'2004-12-13T21:39:45.618Z'</span>
                        <span class="p">));</span>
 <span class="cp">?&gt;</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-26f7a7ec-27b4-4a49-b0c1-d8f8cfe84c27"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Python SDK" data-lang="python" id="tab-f0834e76-ff69-4c22-930d-7a60f24a246d"> <div class="highlight python"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -246,7 +246,7 @@ Content-Length: 18
     <span class="n">target_entity_id</span><span class="o">=</span><span class="s">"iid"</span><span class="p">,</span>
     <span class="n">properties</span><span class="o">=</span><span class="n">second_event_properties</span><span class="p">,</span>
     <span class="n">event_time</span><span class="o">=</span><span class="n">datetime</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">21</span><span class="p">,</span> <span class="mi">38</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mi">618000</span><span class="p">,</span> <span class="n">pytz</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-bb8562e0-949d-428d-951b-5f9553feb9b7"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Ruby SDK" data-lang="ruby" id="tab-26e856b6-eed2-431c-ac3b-ac45feca1086"> <div class="highlight ruby"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
 4
@@ -263,7 +263,7 @@ Content-Length: 18
                           <span class="s1">'eventTime'</span> <span class="o">=&gt;</span> <span class="s1">'2004-12-13T21:39:45.618Z'</span><span class="p">,</span>
                           <span class="s1">'properties'</span> <span class="o">=&gt;</span> <span class="p">{</span> <span class="s1">'someProperty'</span> <span class="o">=&gt;</span> <span class="s1">'value1'</span><span class="p">,</span>
                                             <span class="s1">'anotherProperty'</span> <span class="o">=&gt;</span> <span class="s1">'value2'</span> <span class="p">})</span>
-</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-80f1a001-920a-469e-bb08-140c8cece9b2"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
+</pre></td> </tr></tbody></table> </div> </div> <div data-tab="Java SDK" data-lang="java" id="tab-30fd4990-7d44-4cf9-a0c0-de69faa4fe27"> <div class="highlight java"> <table style="border-spacing: 0"><tbody><tr> <td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td> <td class="code"><pre><span class="o">(</span><span class="n">coming</span> <span class="n">soon</span><span class="o">)</span>
 </pre></td> </tr></tbody></table> </div> </div> </div> <p>Sample response:</p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
 2
 3
@@ -277,7 +277,7 @@ Content-Type: application/json; <span class="nv">charset</span><span class="o">=
 Content-Length: 41
 
 <span class="o">{</span><span class="s2">"eventId"</span>:<span class="s2">"AAAABAAAAQDP3-jSlTMGVu0waj8"</span><span class="o">}</span>
-</pre></td></tr></tbody></table> </div> <h2 id='using-event-api' class='header-anchors'>Using Event API</h2><h3 id='event-creation-api' class='header-anchors'>Event Creation API</h3><p>URL: <code>http://localhost:7070/events.json?accessKey=yourAccessKeyString</code></p><p>Query parameters:</p> <table><thead> <tr> <th style="text-align: left">Field</th> <th style="text-align: left">Type</th> <th style="text-align: left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: left"><code>accessKey</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The Access Key for your App</td> </tr> </tbody></table> <p>The event creation support many commonly used data. POST request body:</p> <table><thead> <tr> <th style="text-align: left">Field</th> <th style="text-align: left">Type</th> <th style="text-align: left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: left"><code>event</code></td> <td style="text-align: left">String</td> <td
  style="text-align: left">Name of the event.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">(Examples: &quot;sign-up&quot;, &quot;rate&quot;, &quot;view&quot;, &quot;buy&quot;).</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All event names start with &quot;$&quot; and &quot;pio_&quot; are reserved</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">and shouldn&#39;t be used as your custom event name (eg. &quot;$set&quot;).</td> </tr> <tr> <td style="text-align: left"><code>entityType</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The entity type. It is the namespace of the entityId and</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">analogous to the table name of 
 a relational database. The</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">entityId must be unique within same entityType.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All entityType names start with &quot;$&quot; and &quot;pio_&quot; are</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">reserved and shouldn&#39;t be used.</td> </tr> <tr> <td style="text-align: left"><code>entityId</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The entity ID. <code>entityType-entityId</code> becomes the unique</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">identifier of the entity. For example, you may have entityType</td> </tr> <tr> <td style="text-align: left"></td> <td style
 ="text-align: left"></td> <td style="text-align: left">named <code>user</code>, and different entity IDs, say <code>1</code> and <code>2</code>. In this</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">case, <code>user-1</code> and <code>user-2</code> uniquely identifies</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">entities.</td> </tr> <tr> <td style="text-align: left"><code>targetEntityType</code></td> <td style="text-align: left">String</td> <td style="text-align: left">(Optional) The target entity type.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All entityType names start with &quot;$&quot; and &quot;pio_&quot;</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">are reserved and shouldn&#39;
 t be used.</td> </tr> <tr> <td style="text-align: left"><code>targetEntityId</code></td> <td style="text-align: left">String</td> <td style="text-align: left">(Optional) The target entity ID.</td> </tr> <tr> <td style="text-align: left"><code>properties</code></td> <td style="text-align: left">JSON</td> <td style="text-align: left">(Optional) See <strong>Note About Properties</strong> below</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All peroperty names start with &quot;$&quot; and &quot;pio_&quot;</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">are reserved and shouldn&#39;t be used as keys inside <code>properties</code>.</td> </tr> <tr> <td style="text-align: left"><code>eventTime</code></td> <td style="text-align: left">String</td> <td style="text-align: left">(Optional) The time of the event. Although Event Server&#39;s<
 /td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">current system time and UTC timezone will be used if this is</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">unspecified, it is highly recommended that this time should be</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">generated by the client application in order to accurately</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">record the time of the event.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">Must be in ISO 8601 format (e.g.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><code>2004-12-13T21:39:45.618Z</code>, or <code>2014-09-09T16
 :17:42.937-08:00</code>).</td> </tr> </tbody></table> <h2 id='note-about-properties' class='header-anchors'>Note About Properties</h2><p>Note that <code>properties</code> can be:</p> <ol> <li>Associated with an <em>generic event</em>: The <code>properties</code> field provide additional information about this event</li> <li>Associated with an <em>entity</em>: The <code>properties</code> field is used to record the changes of an entity&#39;s properties with special events <code>$set</code>, <code>$unset</code> and <code>$delete</code>.</li> </ol> <p>Please see the <a href="/datacollection/eventmodel/">Events Modeling</a> for detailed explanation.</p><h2 id='debugging-recipes' class='header-anchors'>Debugging Recipes</h2><div class="alert-message warning"><p>The following API are mainly for development or debugging purpose only. They should not be supported by SDK nor used by real application under normal circumstances and they are subject to changes.</p></div><div class="alert-messag
 e info"><p>Instead of using <code>curl</code>, you can also install JSON browser plugins such as <strong>JSONView</strong> to pretty-print the JSON on your browser. With the browser plugin you can make the <code>GET</code> queries below by passing in the URL. Plugins like <strong>Postman - REST Client</strong> provide a more advanced interface for making queries.</p></div><p>The <code>accessKey</code> query parameter is mandatory.</p><p>Replace <code>&lt;your_accessKey&gt;</code> and <code>&lt;your_eventId&gt;</code> by a real one in the following:</p><h3 id='get-an-event' class='header-anchors'>Get an Event</h3><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>curl -i -X GET http://localhost:7070/events/&lt;your_eventId&gt;.json?accessKey<span class="o">=</span>&lt;your_accessKey&gt;
+</pre></td></tr></tbody></table> </div> <h2 id='using-event-api' class='header-anchors'>Using Event API</h2><h3 id='event-creation-api' class='header-anchors'>Event Creation API</h3><p>URL: <code>http://localhost:7070/events.json?accessKey=yourAccessKeyString</code></p><p>Query parameters:</p> <table><thead> <tr> <th style="text-align: left">Field</th> <th style="text-align: left">Type</th> <th style="text-align: left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: left"><code>accessKey</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The Access Key for your App</td> </tr> </tbody></table> <p>The event creation support many commonly used data. POST request body:</p> <table><thead> <tr> <th style="text-align: left">Field</th> <th style="text-align: left">Type</th> <th style="text-align: left">Description</th> </tr> </thead><tbody> <tr> <td style="text-align: left"><code>event</code></td> <td style="text-align: left">String</td> <td
  style="text-align: left">Name of the event.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">(Examples: &quot;sign-up&quot;, &quot;rate&quot;, &quot;view&quot;, &quot;buy&quot;).</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All event names start with &quot;$&quot; and &quot;pio_&quot; are reserved</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">and shouldn&#39;t be used as your custom event name (eg. &quot;$set&quot;).</td> </tr> <tr> <td style="text-align: left"><code>entityType</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The entity type. It is the namespace of the entityId and</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">analogous to the table name of 
 a relational database. The</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">entityId must be unique within same entityType.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All entityType names start with &quot;$&quot; and &quot;pio_&quot; are</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">reserved and shouldn&#39;t be used.</td> </tr> <tr> <td style="text-align: left"><code>entityId</code></td> <td style="text-align: left">String</td> <td style="text-align: left">The entity ID. <code>entityType-entityId</code> becomes the unique</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">identifier of the entity. For example, you may have entityType</td> </tr> <tr> <td style="text-align: left"></td> <td style
 ="text-align: left"></td> <td style="text-align: left">named <code>user</code>, and different entity IDs, say <code>1</code> and <code>2</code>. In this</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">case, <code>user-1</code> and <code>user-2</code> uniquely identifies</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">entities.</td> </tr> <tr> <td style="text-align: left"><code>targetEntityType</code></td> <td style="text-align: left">String</td> <td style="text-align: left">(Optional) The target entity type.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All entityType names start with &quot;$&quot; and &quot;pio_&quot;</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">are reserved and shouldn&#39;
 t be used.</td> </tr> <tr> <td style="text-align: left"><code>targetEntityId</code></td> <td style="text-align: left">String</td> <td style="text-align: left">(Optional) The target entity ID.</td> </tr> <tr> <td style="text-align: left"><code>properties</code></td> <td style="text-align: left">JSON</td> <td style="text-align: left">(Optional) See <strong>Note About Properties</strong> below</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><strong>Note</strong>: All property names start with &quot;$&quot; and &quot;pio_&quot;</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">are reserved and shouldn&#39;t be used as keys inside <code>properties</code>.</td> </tr> <tr> <td style="text-align: left"><code>eventTime</code></td> <td style="text-align: left">String</td> <td style="text-align: left">(Optional) The time of the event. Although Event Server&#39;s</
 td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">current system time and UTC timezone will be used if this is</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">unspecified, it is highly recommended that this time should be</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">generated by the client application in order to accurately</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">record the time of the event.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left">Must be in ISO 8601 format (e.g.</td> </tr> <tr> <td style="text-align: left"></td> <td style="text-align: left"></td> <td style="text-align: left"><code>2004-12-13T21:39:45.618Z</code>, or <code>2014-09-09T16:
 17:42.937-08:00</code>).</td> </tr> </tbody></table> <h2 id='note-about-properties' class='header-anchors'>Note About Properties</h2><p>Note that <code>properties</code> can be:</p> <ol> <li>Associated with an <em>generic event</em>: The <code>properties</code> field provide additional information about this event</li> <li>Associated with an <em>entity</em>: The <code>properties</code> field is used to record the changes of an entity&#39;s properties with special events <code>$set</code>, <code>$unset</code> and <code>$delete</code>.</li> </ol> <p>Please see the <a href="/datacollection/eventmodel/">Events Modeling</a> for detailed explanation.</p><h2 id='debugging-recipes' class='header-anchors'>Debugging Recipes</h2><div class="alert-message warning"><p>The following API are mainly for development or debugging purpose only. They should not be supported by SDK nor used by real application under normal circumstances and they are subject to changes.</p></div><div class="alert-message
  info"><p>Instead of using <code>curl</code>, you can also install JSON browser plugins such as <strong>JSONView</strong> to pretty-print the JSON on your browser. With the browser plugin you can make the <code>GET</code> queries below by passing in the URL. Plugins like <strong>Postman - REST Client</strong> provide a more advanced interface for making queries.</p></div><p>The <code>accessKey</code> query parameter is mandatory.</p><p>Replace <code>&lt;your_accessKey&gt;</code> and <code>&lt;your_eventId&gt;</code> by a real one in the following:</p><h3 id='get-an-event' class='header-anchors'>Get an Event</h3><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>curl -i -X GET http://localhost:7070/events/&lt;your_eventId&gt;.json?accessKey<span class="o">=</span>&lt;your_accessKey&gt;
 </pre></td></tr></tbody></table> </div> <h3 id='delete-an-event' class='header-anchors'>Delete an Event</h3><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>curl -i -X DELETE http://localhost:7070/events/&lt;your_eventId&gt;.json?accessKey<span class="o">=</span>&lt;your_accessKey&gt;
 </pre></td></tr></tbody></table> </div> <h3 id='get-events-of-an-app' class='header-anchors'>Get Events of an App</h3><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>curl -i -X GET http://localhost:7070/events.json?accessKey<span class="o">=</span>&lt;your_accessKey&gt;
 </pre></td></tr></tbody></table> </div> <div class="alert-message info"><p>By default, it returns at most 20 events. Use the <code>limit</code> parameter to specify how many events returned (see below). Use cautiously!</p></div><p>In addition, the following <em>optional</em> parameters are supported:</p> <ul> <li><code>startTime</code>: time in ISO8601 format. Return events with <code>eventTime &gt;= startTime</code>.</li> <li><code>untilTime</code>: time in ISO8601 format. Return events with <code>eventTime &lt; untilTime</code>.</li> <li><code>entityType</code>: String. The entityType. Return events for this <code>entityType</code> only.</li> <li><code>entityId</code>: String. The entityId. Return events for this <code>entityId</code> only.</li> <li><code>event</code>: String. The event name. Return events with this name only.</li> <li><code>targetEntityType</code>: String. The targetEntityType. Return events for this <code>targetEntityType</code> only.</li> <li><code>targetEntity
 Id</code>: String. The targetEntityId. Return events for this <code>targetEntityId</code> only.</li> <li><code>limit</code>: Integer. The number of record events returned. Default is 20. -1 to get all.</li> <li><code>reversed</code>: Boolean. <strong>Must be used with both <code>entityType</code> and <code>entityId</code> specified</strong>, returns events in reversed chronological order. Default is false.</li> </ul> <div class="alert-message warning"><p>If you are using <code>curl</code> with the <code>&amp;</code> symbol, you should quote the entire URL by using single or double quotes.</p></div><div class="alert-message warning"><p>Depending on the size of data, you may encounter timeout when querying with some of the above filters. Event server uses <code>entityType</code> and <code>entityId</code> as the key so any query without both <code>entityType</code> and <code>entityId</code> specified might result in a timeout.</p></div><p>For example, get all events of an app with <cod
 e>eventTime &gt;= startTime</code></p><div class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ </span>curl -i -X GET <span class="s2">"http://localhost:7070/events.json?accessKey=&lt;your_accessKey&gt;&amp;startTime=&lt;time in ISO8601 format&gt;"</span>