# 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
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://landofcoder.gitbook.io/magento-2-customer-membership/rest-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
