> For the complete documentation index, see [llms.txt](https://py3xui.gitbook.io/py3xui-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://py3xui.gitbook.io/py3xui-docs/migrations/0.7.0.md).

# 0.7.0

This guide explains what users need to do when upgrading to py3xui 0.7.0.

If you only need release summary, see [0.7.0 Release Notes](/py3xui-docs/release-notes/0.7.0.md).

## Who Needs This

Use this migration if:

* you upgrade from `0.6.x` (or older), and
* your panel is on modern 3x-ui v3 builds.

## What Changed

3x-ui moved client endpoints from `panel/api/inbounds/*` to `panel/api/clients/*`.

py3xui 0.7.0 adapts to this for both `Api` and `AsyncApi`.

## What You Need To Do

1. Upgrade package

```bash
pip install -U py3xui
```

2. Verify panel compatibility

* Confirm your panel is a modern 3x-ui v3 build that exposes `panel/api/clients/*` routes.

3. Re-test client operations in your app

* create client
* update client
* delete client
* reset client stats
* list online clients

4. Check any logic that assumes strict inbound-scoped client operations

* Some client routes are now global at panel API level.
* Keep your app-level guards if you rely on inbound scoping.

5. Re-run your QA checks

```bash
pytest
mypy py3xui
pylint py3xui
```

## Behavior Notes You Should Know

* `client.update(client_uuid, client)`:
  * upstream route now identifies target by email
  * py3xui keeps method signature for compatibility
* `client.delete(inbound_id, client_uuid)`:
  * upstream route requires email
  * py3xui resolves legacy id/uuid to email when possible
* `client.get_by_email(email)`:
  * supports modern nested response shape (`obj.client` + `obj.inboundIds`)
* `get_traffic_by_id`:
  * implemented via `clients/list` + local filtering in modern API context

## Recommended Rollout Plan

1. Upgrade in staging.
2. Run smoke tests for critical client flows.
3. Validate one real create-update-delete cycle.
4. Deploy to production.
5. Watch error logs for 24h for `404` or payload-shape mismatches.

## Quick Troubleshooting

If you see 404s on client methods, check for old route assumptions in custom integrations and confirm panel version.

If delete/update targets the wrong user, verify source data has the expected email/uuid/id fields.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://py3xui.gitbook.io/py3xui-docs/migrations/0.7.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
