---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.ru/dev/direct/doc/en/concepts/compare.md
  - https://yandex.ru/dev/direct/doc/ru/concepts/compare.md
  - href: en/concepts/compare.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: en/migration/concepts/compare.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/direct/doc/en/llms.txt

# What's new in version 5

## Addresses  {#url}

Version 5 doesn't have universal addresses that are the same for all requests. The API version 5 consists of separate services, each with its own unique address.

The services are designed to work with specific classes of objects.  For example, the `Campaigns` service is used for managing campaigns. It has the following addresses:

- For JSON requests:
    
    ```httpget translate=no
    https://api.direct.yandex.com/json/v501/campaigns
    ```
    
- For SOAP requests:
    
    ```httpget translate=no
    https://api.direct.yandex.com/v501/campaigns
    ```
    
- WSDL description:
    
    ```httpget translate=no
    https://api.direct.yandex.com/v501/campaigns?wsdl
    ```
    

The addresses and methods for each of the services are listed in the API reference guide.

### Learn more

- [Services in version 5 of the API](https://yandex.com/dev/direct/doc/en/concepts/about)
- [Sandbox addresses](https://yandex.com/dev/direct/doc/en/concepts/sandbox)


## Request for API access {#request}

To get access to version 5 of the API, you must [submit a request](https://yandex.com/dev/direct/doc/concepts/register.html) and wait for approval. This is mandatory for all applications, including those that integrated with the API before application registration was required and continued to use version 4 and Live 4 without submitting a request.


## Authorization {#token}

Similar to older versions of the API, version 5 requests must specify an OAuth access token that authorizes access to a specific user's data. The difference is that the access token must be passed in the HTTP `Authorization` header, not in the request body. For example:

```httpget translate=no
Authorization: Bearer 0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f
```


{% note alert %}

`Bearer` is an OAuth constant. It must always be specified.

{% endnote %}


### Learn more

- [Access and authorization](https://yandex.com/dev/direct/doc/concepts/access.html)
- [HTTP headers](https://yandex.com/dev/direct/doc/en/concepts/headers)


## Working with agency clients {#subclients}

In version 5, an agency can only access or manage data for a single user (client) per request. Pass the client's username in the HTTP `Client-Login` header.

For example:

```httpget translate=no
Client-Login: agrom
```

If you need to obtain or change data for multiple users, you must make a separate request for each user.

### Learn more

- [HTTP headers](https://yandex.com/dev/direct/doc/en/concepts/headers)


## Structure of objects {#struct}

Sitelinks, vCards, callouts, and keywords are independent objects in version 5 of the API. There are separate services provided for working with them. This simplifies data management. For example, to change the phone number in a vCard, you don't need to edit all the ads that use it. The API version 5 also provides full support for ad groups.

### Learn more

- [Objects in version 5 of the API](https://yandex.com/dev/direct/doc/objects/objects.html)
- [Method equivalents](methods.html)


## Working with data {#partial-edit}

Version 5 uses a completely different logic for working with objects (creating, editing, getting, and so on).

In a request to create or change multiple objects, each object is processed separately. For example, if an application sends a request to create 100 ads and some parameter values are invalid for one of them, the other 99 ads are still created successfully.

Unlike previous versions, you don't need to pass all the object parameters when editing an object. You only need to specify values for the parameters that you want to change. The other parameters won't change. The Yandex Direct server will check anyway the entire object and return an error if the new parameter values have invalidated the object.

A similar rule applies to getting data – the server only returns the object parameters requested by the application, instead of returning all the parameters. By requesting only the necessary parameters, you can significantly speed up data exchange.


## Currency {#currency}

In version 5, all the methods accept and return monetary values in the user's currency. The `Currency` parameter, which was introduced in the Live 4 version for backward compatibility, is not used.


{% note alert %}

All monetary values (bids, strategy parameters, and others) are passed via the API as integers: the amount in the currency, multiplied by 1,000,000. For example, for a bid of 2.5 rubles, you would pass the integer 2,500,000.

{% endnote %}



## Technical limitations {#limits}

In versions 4 and Live 4 of the API, there was a maximum of five simultaneous requests per **user**. In version 5, up to five simultaneous requests are allowed per **advertiser**. It doesn't matter which of the advertiser's representatives or agencies makes the request.

Version 5 doesn't apply any restrictions to the number of calls of individual methods.


## Points {#units}

The point system in version 5 is similar to version 4 and Live 4, but there are a few differences:

- Points are granted in regular intervals throughout the day, rather than once a day.
    
- Points are deducted both for errors and for successful calls.
    
- An agency can spend its own points on operations with data for a client advertiser.
    
- The response to every request returns the available points remaining. You don't need to call a separate method to check the point balance.
    

### Learn more

- [Points in version 5](https://yandex.com/dev/direct/doc/en/concepts/units)


## Request ID {#request-id}

Version 5 of the API assigns each request a unique ID and returns it in the request response. Please indicate this ID when contacting the [Support service](https://yandex.com/dev/direct/doc/troubleshooting/issue.html).

### Learn more

- [HTTP headers](https://yandex.com/dev/direct/doc/en/concepts/headers)

