# Get the data to the iOS app

### Represents access to the public API

```
@interface RPAPIEntry : NSObject {
}
- (void)refresh;
```

### Entry point class for RaxelPulse SDK. Start your work with this class instance initialization.

```
@interface RPEntry : NSObject
```

### Properties

| Item                                                   | Method                                                                                   |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| Current SDK Version                                    | `@property (readonly, nonatomic) NSString *version;`                                     |
| API Entry point                                        | `@property (readonly, nonatomic) RPAPIEntry *api;`                                       |
| Virtual device token                                   | `@property (weak, nonatomic) NSString * _Nullable virtualDeviceToken;`                   |
| Disables tracking while leaving some SDK functions on. | `@property (assign, nonatomic) BOOL disableTracking;`                                    |
| Force API Language                                     | `@property (nonatomic) RPApiLanguage apiLanguage;`                                       |
| Advertising identifier. It can be send with heartbeat. | `@property (strong, nonatomic) NSUUID *advertisingIdentifier;`                           |
| Delegate for event logging.                            | `@property (weak, nonatomic) id<RPLogDelegate> logDelegate;`                             |
| Delegate for speeding events.                          | `@property (weak, nonatomic) id<RPSpeedLimitDelegate> speedLimitDelegate;`               |
| Delegate for start/stop tracking events.               | `@property (weak, nonatomic) id<RPTrackingStateListenerDelegate> trackingStateDelegate;` |

### **RPEntry**

#### **Initialises new RPEntry class instance with specified device ID. Must be the first method calling from RaxelPulse SDK.**

```
@param useHardware Indicates whether the SDK should enable hardware monitoring in addition to GPS location updates.
+ (void)initializeWithHardwareMonitoring:(BOOL)useHardware __attribute__ ((deprecated("use [RPEntry initializeWithRequestingPermissions:] method")));
```

#### Initialises new RPEntry class instance with specified device ID. Must be the first method calling from RaxelPulse SDK.

```
@param requestPermissions Indicates whether the SDK should request system permissions.
+ (void)initializeWithRequestingPermissions:(BOOL)requestPermissions;

```

#### Returns shared RPEntry class instance. This method can be called only after initializeWithDeviceToken:useHardwareMonitoring: method execution.

```
@return Shared RPEntry class instance.
+ (instancetype)instance;
- (instancetype)init NS_UNAVAILABLE;+ (instancetype)new NS_UNAVAILABLE;
```

&#x20;

### Utils

#### Remove virtual device token. Use this method instead of setting empty token.

```
- (void)removeVirtualDeviceToken;
```

### RPAPIEntry

```
@param response The server response. Final type depends on the query.
@param error The error describing failure.
typedef void(^RPAPIEntryCallback)(id response, NSError *error);
@class RPAPIEntry;@class RPTrack;
```
