> For the complete documentation index, see [llms.txt](https://landofcoder.gitbook.io/magento-2-customer-membership/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://landofcoder.gitbook.io/magento-2-customer-membership/rest-api.md).

# Rest API

### Frontend API

**Get list membership**

Endpoint: `/V1/lof-membership/customerProductMembership`

`Method: GET`

`Params:`&#x20;

* storeId

Response Data:

```json
{
  "entity_id": "string",
  "sku": "string",
  "type_id": "string",
  "name": "string",
  "status": "string",
  "duration": "string",
  "duration_array": "string",
  "attribute_set_id": "string",
  "has_options": "string",
  "required_options": "string",
  "created_at": "string",
  "updated_at": "string",
  "price": "string",
  "tax_class_id": "string",
  "final_price": "string",
  "minimal_price": "string",
  "min_price": "string",
  "max_price": "string",
  "tier_price": "string",
  "cat_index_position": "string",
  "url_key": "string",
  "customer_group": "string",
  "featured_package": "string",
  "short_description": "string",
  "news_from_date": "string",
  "news_to_date": "string",
  "store_id": "string",
  "membership_order": 0
}
```

**Get list membership plans**

Endpoint: `/V1/lof-membership/customerProductMemberships`

`Method: GET`

`Params:`&#x20;

* searchCriteria&#x20;

Response Data:

```
{
  "items": [
    {
      "entity_id": "string",
      "sku": "string",
      "type_id": "string",
      "name": "string",
      "status": "string",
      "duration": "string",
      "duration_array": "string",
      "attribute_set_id": "string",
      "has_options": "string",
      "required_options": "string",
      "created_at": "string",
      "updated_at": "string",
      "price": "string",
      "tax_class_id": "string",
      "final_price": "string",
      "minimal_price": "string",
      "min_price": "string",
      "max_price": "string",
      "tier_price": "string",
      "cat_index_position": "string",
      "url_key": "string",
      "customer_group": "string",
      "featured_package": "string",
      "short_description": "string",
      "news_from_date": "string",
      "news_to_date": "string",
      "store_id": "string",
      "membership_order": 0
    }
  ],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "string",
            "value": "string",
            "condition_type": "string"
          }
        ]
      }
    ],
    "sort_orders": [
      {
        "field": "string",
        "direction": "string"
      }
    ],
    "page_size": 0,
    "current_page": 0
  },
  "total_count": 0
}
```

`Example:`&#x20;

```
https://your-domain/index.php/rest/all/V1/lof-membership/customerProductMemberships?searchCriteria%5BpageSize%5D=10&searchCriteria%5BcurrentPage%5D=1
```

**Get my membership information (required customer logged in before)**

Endpoint: /V1/lof-membership/myMembership

Method: GET

Params:&#x20;

* storeId - int (optional)

Response Data:

```
{
  "entity_id": "string",
  "sku": "string",
  "type_id": "string",
  "name": "string",
  "status": "string",
  "duration": "string",
  "duration_array": "string",
  "attribute_set_id": "string",
  "has_options": "string",
  "required_options": "string",
  "created_at": "string",
  "updated_at": "string",
  "price": "string",
  "tax_class_id": "string",
  "final_price": "string",
  "minimal_price": "string",
  "min_price": "string",
  "max_price": "string",
  "tier_price": "string",
  "cat_index_position": "string",
  "url_key": "string",
  "customer_group": "string",
  "featured_package": "string",
  "short_description": "string",
  "news_from_date": "string",
  "news_to_date": "string",
  "store_id": "string",
  "membership_order": 0
}
```

**Customer submit cancel membership**

Endpoint: /V1/lof-membership/customerCancelrequest

Method: PUT

Params:

```
{
  "cancelrequest": {
    "entity_id": 0,
    "membership_id": 0,
    "status": "string",
    "customer_comment": "string",
    "admin_comment": "string",
    "creation_time": "string",
    "name": "string",
    "duration": "string",
    "price": "string",
    "product_id": 0
  }
}
```

Response Data:

```
{
  "entity_id": 0,
  "membership_id": 0,
  "status": "string",
  "customer_comment": "string",
  "admin_comment": "string",
  "creation_time": "string",
  "name": "string",
  "duration": "string",
  "price": "string",
  "product_id": 0
}
```

### Backend API

#### **Get List membership groups**

Endpoint: /V1/lof-membership/groups

Method: GET

Params:

* searchCriteria

Response Data:

```
{
  "items": [
    {
      "group_id": 0,
      "name": "string",
      "customergroup_id": 0,
      "priority": 0,
      "status": 0,
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "string",
            "value": "string",
            "condition_type": "string"
          }
        ]
      }
    ],
    "sort_orders": [
      {
        "field": "string",
        "direction": "string"
      }
    ],
    "page_size": 0,
    "current_page": 0
  },
  "total_count": 0
}
```

#### **Get Membership Group by ID**

Endpoint: /V1/lof-membership/group/:groupId

Method: GET

Params:

* groupId - Int

Reponse Data:

```
{
  "group_id": 0,
  "name": "string",
  "customergroup_id": 0,
  "priority": 0,
  "status": 0,
  "created_at": "string",
  "updated_at": "string"
}
```

**Delete Membership Group by ID**

Endpoint: /V1/lof-membership/group/:groupId

Method: DELETE

Params:

* groupId - Int

Response Data:

Boolean

**Save/Update Membership Group**

Endpoint: /V1/lof-membership/group

Method: POST-PUT

Params:

```
{
  "group": {
    "group_id": 0,
    "name": "string",
    "customergroup_id": 0,
    "priority": 0,
    "status": 0,
    "created_at": "string",
    "updated_at": "string"
  }
}
```

Response:

```
{
  "group_id": 0,
  "name": "string",
  "customergroup_id": 0,
  "priority": 0,
  "status": 0,
  "created_at": "string",
  "updated_at": "string"
}
```

**Get List Membership Packages**

`Endpoint:` /V1/lof-membership/memberships

Method: GET

Params:

* searchCriteria

Response Data:

```
{
  "items": [
    {
      "membership_id": 0,
      "group_id": 0,
      "before_customer_group_id": 0,
      "customer_id": "string",
      "name": "string",
      "duration": "string",
      "price": 0,
      "expiration_date": "string",
      "created_at": "string",
      "status": 0,
      "product_id": 0,
      "product_options": "string",
      "item_id": 0
    }
  ],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "string",
            "value": "string",
            "condition_type": "string"
          }
        ]
      }
    ],
    "sort_orders": [
      {
        "field": "string",
        "direction": "string"
      }
    ],
    "page_size": 0,
    "current_page": 0
  },
  "total_count": 0
}
```

**Get Membership Package by ID**

Endpoint: /V1/lof-membership/membership/:membershipId

Method: GET

Params:

* membershipId - Int

Response Data:

```
{
  "membership_id": 0,
  "group_id": 0,
  "before_customer_group_id": 0,
  "customer_id": "string",
  "name": "string",
  "duration": "string",
  "price": 0,
  "expiration_date": "string",
  "created_at": "string",
  "status": 0,
  "product_id": 0,
  "product_options": "string",
  "item_id": 0
}}
```

### Delete membership package

Endpoint: /V1/lof-membership/membership/{membershipId}

Method: DELETE

Params:

* membershipId - Int

Response Data:

Boolean

### Save/Update membership package

Endpoint: /V1/lof-membership/membership

Method: POST-PUT

Params:

```
{
  "membership": {
    "membership_id": 0,
    "group_id": 0,
    "before_customer_group_id": 0,
    "customer_id": "string",
    "name": "string",
    "duration": "string",
    "price": 0,
    "expiration_date": "string",
    "created_at": "string",
    "status": 0,
    "product_id": 0,
    "product_options": "string",
    "item_id": 0
  }
}
```

Response Data:

```
{
  "membership_id": 0,
  "group_id": 0,
  "before_customer_group_id": 0,
  "customer_id": "string",
  "name": "string",
  "duration": "string",
  "price": 0,
  "expiration_date": "string",
  "created_at": "string",
  "status": 0,
  "product_id": 0,
  "product_options": "string",
  "item_id": 0
}
```

### Get List transactions

Endpoint: /V1/lof-membership/transactions

Method: GET

Params:

* search

Reponse Data:

```
{
  "items": [
    {
      "transaction_id": 0,
      "name": "string",
      "customer_id": 0,
      "package": "string",
      "amount": 0,
      "duration": "string",
      "duration_unit": "string",
      "additional_info": "string",
      "created_at": "string",
      "product_id": 0,
      "product_options": "string",
      "item_id": 0,
      "group_id": 0
    }
  ],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "string",
            "value": "string",
            "condition_type": "string"
          }
        ]
      }
    ],
    "sort_orders": [
      {
        "field": "string",
        "direction": "string"
      }
    ],
    "page_size": 0,
    "current_page": 0
  },
  "total_count": 0
}
```

### Get transaction by ID

Endpoint: /V1/lof-membership/transaction/{transactionId}

Method: GET

Params:

* transactionId - Int

Response Data:

```
{
  "transaction_id": 0,
  "name": "string",
  "customer_id": 0,
  "package": "string",
  "amount": 0,
  "duration": "string",
  "duration_unit": "string",
  "additional_info": "string",
  "created_at": "string",
  "product_id": 0,
  "product_options": "string",
  "item_id": 0,
  "group_id": 0
}
```

### Delete transaction by ID

Endpoint: /V1/lof-membership/transaction/{transactionId}

Method: DELETE

Params:

* transactionId - Int

Response Data:

Boolean

### Save/Update Transaction

Endpoint: /V1/lof-membership/transaction

Method: POST-PUT

Params:

```
{
  "transaction": {
    "transaction_id": 0,
    "name": "string",
    "customer_id": 0,
    "package": "string",
    "amount": 0,
    "duration": "string",
    "duration_unit": "string",
    "additional_info": "string",
    "created_at": "string",
    "product_id": 0,
    "product_options": "string",
    "item_id": 0,
    "group_id": 0
  }
}
```

Response Data:

```
{
  "transaction_id": 0,
  "name": "string",
  "customer_id": 0,
  "package": "string",
  "amount": 0,
  "duration": "string",
  "duration_unit": "string",
  "additional_info": "string",
  "created_at": "string",
  "product_id": 0,
  "product_options": "string",
  "item_id": 0,
  "group_id": 0
}
```

Get List Cancel Requests

Endpoint: /V1/lof-membership/cancelrequests

Method: GET

Params:

* search

Response Data:

```
{
  "items": [
    {
      "entity_id": 0,
      "membership_id": 0,
      "status": "string",
      "customer_comment": "string",
      "admin_comment": "string",
      "creation_time": "string",
      "name": "string",
      "duration": "string",
      "price": "string",
      "product_id": 0
    }
  ],
  "search_criteria": {
    "filter_groups": [
      {
        "filters": [
          {
            "field": "string",
            "value": "string",
            "condition_type": "string"
          }
        ]
      }
    ],
    "sort_orders": [
      {
        "field": "string",
        "direction": "string"
      }
    ],
    "page_size": 0,
    "current_page": 0
  },
  "total_count": 0
}
```

### Get Cancel Request By Id

Endpoint: /V1/lof-membership/cancelrequest/{entityId}

Method: GET

Params:

* entityId - Int

Response Data:

```
{
  "entity_id": 0,
  "membership_id": 0,
  "status": "string",
  "customer_comment": "string",
  "admin_comment": "string",
  "creation_time": "string",
  "name": "string",
  "duration": "string",
  "price": "string",
  "product_id": 0
}
```

### Delete cancel request

Endpoint: /V1/lof-membership/cancelrequest/{entityId}

Method: DELETE

Params:

* entityId - Int

Response Data:

Boolean

### Save/Update Cancel Request

Endpoint: ​/V1​/lof-membership​/cancelrequest

Method: POST-PUT

Params:

```
{
  "cancelrequest": {
    "entity_id": 0,
    "membership_id": 0,
    "status": "string",
    "customer_comment": "string",
    "admin_comment": "string",
    "creation_time": "string",
    "name": "string",
    "duration": "string",
    "price": "string",
    "product_id": 0
  }
}
```

Response Data:

```
{
  "entity_id": 0,
  "membership_id": 0,
  "status": "string",
  "customer_comment": "string",
  "admin_comment": "string",
  "creation_time": "string",
  "name": "string",
  "duration": "string",
  "price": "string",
  "product_id": 0
}
```
