# ipushpull Technical Reference

Canonical page: https://www.adaptabletools.com/docs/technical-reference-ipushpull

## ipushpull Plugin Options

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [autoLogin](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#autologin) | `boolean` | Whether AdapTable should try log in to ipushpull automatically at start-up | false |
| [cellStyles](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#cellstyles) | `'lightTheme' \| 'darkTheme'` | The color theme to use when styling data pushed to ipushpull pages | derived from Adaptable&#39;s current theme (lightTheme or darkTheme) |
| [includeSystemReports](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#includesystemreports) | `boolean` | Whether AdapTable will include System Reports (e.g. &#39;All Data&#39;, &#39;Selected Cells&#39; etc) in the ipushpull toolbar dropdown | true |
| [ippConfig](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#ippconfig) | [`IPushPullConfig`](https://www.adaptabletools.com/docs/reference/ipushpullconfig.md) | The config required to run ipushpull; use your ipushpull credentials |   |
| [password](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#password) | `string` | The user&#39;s ipushpull password; if supplied, pre-populates the login screen&#39;s password textbox |   |
| [throttleTime](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#throttletime) | `number` | How many miliseconds AdapTable should throttle when sending data updates to ipushpull | 2000 |
| [username](https://www.adaptabletools.com/docs/reference/ipushpullpluginoptions.md#username) | `string` | User&#39;s ipushpull user name (usually email address); if supplied, pre-populates the login screen&#39;s username textbox |   |

### ipushpull Config

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [api_key](https://www.adaptabletools.com/docs/reference/ipushpullconfig.md#api_key) | `string` | OAuth Client ID |   |
| [api_secret](https://www.adaptabletools.com/docs/reference/ipushpullconfig.md#api_secret) | `string` | OAuth Client Secret |   |
| [api_url](https://www.adaptabletools.com/docs/reference/ipushpullconfig.md#api_url) | `string` | Base URL for the ipushpull REST API | &#39;https://test.ipushpull.com/api/1.0&#39; |

------------- 

## ipushpull API

| Method | Returns | Description |
| --- | --- | --- |
| [addNewIPushPullPage(folder, page)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#addnewipushpullpage) | `void` | Adds a new page to ipushpull using given name in the supplied folder |
| [getAutoLogin()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getautologin) | `boolean` | Retrieves `AutoLogin` from ipushpull options; if `true` AdapTable will automatically log user in to ipushpull at start-up |
| [getCurrentIPushPullPassword()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getcurrentipushpullpassword) | `string \| undefined` | Retrieves `Password` from ipushpull state -- AFTER someone logs in |
| [getCurrentIPushPullUsername()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getcurrentipushpullusername) | `string \| undefined` | Retrieves `Username` from ipushpull state - AFTER someone logs in |
| [getCurrentLiveIPushPullReport()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getcurrentliveipushpullreport) | [`IPushPullReport`](https://www.adaptabletools.com/docs/reference/ipushpullreport.md)` \| undefined` | Retrieves current ipushpull Report from ipushpull state; A Report contains Name, Folder and ipushpull Page |
| [getFolderIdForName(folderName)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getfolderidforname) | `number` | Gets the Id of the ipushpull folder / Domain with the given name |
| [getIPushPullDomains()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getipushpulldomains) | [`IPushPullDomain`](https://www.adaptabletools.com/docs/reference/ipushpulldomain.md)`[]` | Retrieves all the ipushpull domain to which the current user has access<br/><br/>An `IPushPullDomain` contains 3 properties:<br/><br/>- **Name**: the name of the Domain / Folder<br/><br/>- **FolderId**: the number of the Domain / Folder<br/><br/>- **Pages**: a string array containing the names of all the Pages in the Folder |
| [getIPushPullInstance()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getipushpullinstance) | `any` | Retrieves the current ipushpull instance (if one has been provided by the User at design time in ipushpull state) |
| [getIPushPullPassword()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getipushpullpassword) | `string \| undefined` | Retrieves `Password` from ipushpull options (if provided) |
| [getIPushPullThrottleTime()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getipushpullthrottletime) | `number \| undefined` | Retrieves Throttle Time from ipushpull State; how often a Live report will update ipushpull (if data changes) |
| [getIPushPullUsername()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getipushpullusername) | `string \| undefined` | Retrieves `Username` from ipushpull options (if provided) |
| [getPagesForIPushPullDomain(domain)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#getpagesforipushpulldomain) | `string[]` | Retrieves all pages in given ipushpull domain |
| [includeSystemReports()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#includesystemreports) | `boolean` | Whether to display System Reports in ipushpull toolbar |
| [isIPushPullAvailable()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#isipushpullavailable) | `boolean \| undefined` | Checks if an ipushpull instance has been provided by the user |
| [isIPushPullLiveDataRunning()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#isipushpulllivedatarunning) | `boolean \| undefined` | Checks if a report is sending Live Data to ipushpull |
| [isIPushPullReportLive(report)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#isipushpullreportlive) | `boolean` | Checks if given report is currently &#39;live&#39; (i.e. sending updates as data changes) |
| [isIPushPullRunning()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#isipushpullrunning) | `boolean \| undefined` | Checks to see if ipushpull is running (i.e. a user has successfully logged in) |
| [loginToIPushPull(userName, password)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#logintoipushpull) | `void` | Logins in user to ipushpull with given credentials; if successful ipushpull toolbar will display full set of controls |
| [logoutFromIPushPull()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#logoutfromipushpull) | `void` | Logs out the current user from ipushpull (changes ipushpull toolbar to show Login button) |
| [sendSnapshot(iPushPullReport)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#sendsnapshot) | `void` | Publishes an ipushpull Report as a one-off export (i.e. with no live data) |
| [setIPushPullDomains(IPushPullDomains)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#setipushpulldomains) | `void` | Sets given Domains as those for the current User |
| [setIPushPullInstance(ippInstance)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#setipushpullinstance) | `void` | Replaces the ipushpull instance AdapTable is using. Prefer the login methods. |
| [setIPushPullThrottleTime(throttleTime)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#setipushpullthrottletime) | `void` | Sets Throttle time for ipushpull; how often a Live report will update ipushpull (if data changes) |
| [showIPushPullPopup()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#showipushpullpopup) | `void` | Opens iPushPullPopup (though its currently empty!) |
| [startLiveData(iPushPullReport)](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#startlivedata) | `void` | Publishes ipushpull Report as Live Data; any changes to underlying data in report will be sent to ipushpull<br/><br/>When this happens the &#39;play&#39; button in the ipushpull toolbar changes to a red &#39;pause&#39; button |
| [stopLiveData()](https://www.adaptabletools.com/docs/reference/ipushpullapi.md#stoplivedata) | `void` | Pauses current Live Data report<br/><br/>When this happens the &#39;pause&#39; button in the ipushpull toolbar changes back to a &#39;play&#39; button |

### Accessing API

Because ipushpull is available via a Plugin, the easiest way to access the Api is as follows:

```ts
const ipushpullApi = adaptableApi.pluginsApi.getipushpullPluginApi();
```
