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

# add

Creates extensions.

Only one type of extension, the callout, is available at this time.

## Learn more

- [How the “add” method works](https://yandex.com/dev/direct/doc/best-practice/modify.html)
- [How to handle errors](https://yandex.com/dev/direct/doc/en/concepts/errors)


## Restrictions {#restrictions}

To check the callout limit for a user, call the [Clients](https://yandex.com/dev/direct/doc/en/clients/clients.md).[get](https://yandex.com/dev/direct/doc/en/clients/get.md) or [AgencyClients](https://yandex.com/dev/direct/doc/en/agencyclients/agencyclients.md).[get](https://yandex.com/dev/direct/doc/en/agencyclients/get.md) method (look for the AD_EXTENSIONS_TOTAL element in the Restrictions array).

Maximum of 1000 extensions per method call.

If there are identical extensions, an error is returned for each of them.


## Request {#input}

Request structure in JSON format:

```javascript translate=no
{
  "method": "add",
  "params": { /* params */
    "AdExtensions": [{  /* AdExtensionAddItem */
      "Callout": {  /* Callout */
        "CalloutText": (string) /* required */
      }
    }, ... ] /* required */
  }
}
```


#|
||
**Parameter**
|
**Type**
|
**Description**
|
**Required**
||
||
**params structure (for JSON) / AddRequest structure (for SOAP)**
|
>
|
>
|
>
||
||
`AdExtensions`
|
array of AdExtensionAddItem
|
Extensions to add.
|
Yes
||
||
**AdExtensionAddItem structure**
|
>
|
>
|
>
||
||
`Callout`
|
Callout
|
A callout.
|
No
||
||
**Callout structure**
|
>
|
>
|
>
||
||
`CalloutText`
|
string
|
Callout text. Maximum of 25 characters.
|
No
||
|# 

## Response {#output}

Response structure in JSON format:

```javascript translate=no
{
  "result": { /* result */
    "AddResults": [{  /* ActionResult */
      "Id": (long),
      "Warnings": [{  /* ExceptionNotification */
        "Code": (int), /* required */
        "Message": (string), /* required */
        "Details": (string)
      }, ... ],
      "Errors": [{  /* ExceptionNotification */
        "Code": (int), /* required */
        "Message": (string), /* required */
        "Details": (string)
      }, ... ]
    }, ... ]
  }
}
```


#|
||
**Parameter**
|
**Type**
|
**Description**
||
||
**result structure (for JSON) / AddResponse structure (for SOAP)**
|
>
|
>
||
||
`AddResults`
|
array of ActionResult
|
Results of adding extensions.
||
||
**ActionResult structure**
|
>
|
>
||
||
`Id`
|
long
|
ID of the created extension. Returned if there aren't any errors. See the section [Operations on object arrays](https://yandex.com/dev/direct/doc/best-practice/modify.html).
||
||
`Warnings`
|
array of ExceptionNotification
|
Warnings that occurred during the operation.
||
||
`Errors`
|
array of ExceptionNotification
|
Errors that occurred during the operation.
||
|# 
