---
name: "getPetBehavior"
mode: "api"
versionRequirements:
  - { name: "@ray-js/ray", version: "1.6.27" }
title: "getPetBehavior - Get analyzed behavior patterns and insights for pets"
---

## getPetBehavior

> [VERSION] @ray-js/ray >= 1.6.27

### Description

Get paginated pet behavior records

### Parameters

`Params`

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `GetPetBehavior` | Yes | Request parameters: optional devId, time range, pagination pageNo/pageSize |

### Return Value

Type: `Promise<PetBehavior>`

Promise resolving to behavior paged data (PetBehavior)

##### PetBehavior

| Property | Type | Description |
| --- | --- | --- |
| `totalCount` | `number` | Total record count |
| `pageNo` | `number` | Page number |
| `pageSize` | `number` | Page size |
| `hasNext` | `boolean` | Whether there is a next page |
| `data` | `Object[]` | Feeding information |

##### PetBehavior.data[] properties

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `recordNo` | `string` | Yes | - | Record No. |
| `devId` | `string` | No | - | Device ID |
| `deviceName` | `string` | No | - | Device name (snapshot) |
| `actionType` | `number` | Yes | - | Behavior type: 1 - pet detected, 2 - feeding |
| `recordTime` | `number` | Yes | - | Record time, unit: milliseconds |
| `isEncrypted` | `0 \| 1` | Yes | - | Whether the file is encrypted: 0 - no, 1 - yes |
| `bucketName` | `string` | Yes | - | Cloud storage bucket |
| `fileType` | `string` | Yes | - | File type: image/media |
| `fileDisplay` | `string` | Yes | - | Accessible file URL, not decrypted |
| `fileObjectKey` | `string` | Yes | - | Cloud storage file object, present only when fileType is image |
| `videoCoverObjectKey` | `string` | Yes | - | Accessible video thumbnail URL, valid for 30–60 min |
| `videoDisplay` | `string` | Yes | - | Accessible video URL, valid for 30–60 min |
| `videoPrefix` | `string` | Yes | - | Video file prefix, available only if the user has enabled cloud storage (use this to retrieve the video file) |
| `videoType` | `string` | Yes | - | Video file type: cloud storage/video message |
| `pets` | `Object[]` | No | - | Associated pet information |
| `extInfo` | `string` | Yes | - | Extended information, depends on pet type, e.g., feeding start and end time |


##### PetBehavior.data[].pets[] properties

| Property | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `petId` | `number` | Yes | - | Pet ID |
| `petName` | `string` | Yes | - | Pet name |


### Referenced Types

##### `type` GetPetBehavior

| Property | Type | Description |
| --- | --- | --- |
| `devId` | `string` | Device ID (query by device UUID) |
| `startTime` | `number` | Query start time, unit: milliseconds |
| `endTime` | `number` | Query end time, unit: milliseconds |
| `pageNo` | `number` | Page number, starting from 1 |
| `pageSize` | `number` | Page size |


### Examples

#### Request example

```typescript
import { getPetBehavior } from '@ray-js/ray';

getPetBehavior({
  devId: 'vdevo******',
  startTime: 1753315200000,
  endTime: 1753401600000,
  pageNo: 1,
  pageSize: 20,
})
  .then((res) => {
    console.log(res);
  })
  .catch(console.error);
```

#### Response example

```json
{
  "totalCount": 0,
  "pageNo": 1,
  "pageSize": 20,
  "hasNext": false,
  "data": []
}
```
