Add offer
curl --request POST \
--url https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"offer_id": 123
}
'import requests
url = "https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers"
payload = { "offer_id": 123 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({offer_id: 123})
};
fetch('https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offer_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers"
payload := strings.NewReader("{\n \"offer_id\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offer_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offer_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"user_id": 123,
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"phone": "<string>",
"email": "<string>",
"notes": "<string>",
"tags": "<string>",
"is_active": true,
"is_blocked": true,
"last_active_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"utm_tags": {},
"custom_fields": {}
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>",
"errors": {}
}Тарифы
Добавить тариф
Выдаёт подписчику тариф, запуская его в API-канале (Pro)
POST
/
api
/
v1
/
bot
/
{bot}
/
subscribers
/
{student}
/
offers
Add offer
curl --request POST \
--url https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"offer_id": 123
}
'import requests
url = "https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers"
payload = { "offer_id": 123 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({offer_id: 123})
};
fetch('https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offer_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers"
payload := strings.NewReader("{\n \"offer_id\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offer_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.zenedu.io/api/v1/bot/{bot}/subscribers/{student}/offers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offer_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"user_id": 123,
"first_name": "<string>",
"last_name": "<string>",
"username": "<string>",
"phone": "<string>",
"email": "<string>",
"notes": "<string>",
"tags": "<string>",
"is_active": true,
"is_blocked": true,
"last_active_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"utm_tags": {},
"custom_fields": {}
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>",
"errors": {}
}{
"message": "<string>",
"errors": {}
}Авторизации
API token from the Zenedu dashboard
Тело
application/json
Offer ID
Ответ
Subscriber
Subscriber ID
Telegram user ID
First name
Last name
Telegram username
Phone number
Email address
Notes about the subscriber
Comma-separated list of tag names, empty string if none
Whether the subscriber is active
Whether the subscriber is blocked
Last activity timestamp
Subscription timestamp
UTM tags keyed by type
Show child attributes
Show child attributes
Custom field values keyed by field name
Show child attributes
Show child attributes