Покупатели

Зарегистрированные покупатели магазина — только чтение.

Нужно отдельное право customers:read: здесь персональные данные.

Список покупателей

GET/customersправо customers:read

Зарегистрированные покупатели магазина.

Параметры

ПараметрГдеТипОписание
limitв адресецелоеСколько объектов вернуть, от 1 до 250. По умолчанию 50.
cursorв адресестрокаЗначение next_cursor из прошлого ответа.

Пример запроса

curl -G https://api.okeysait.ru/v1/customers \
  -H "Authorization: Bearer $OKEANO_KEY" \
  --data-urlencode "limit=50"
<?php
$ch = curl_init('https://api.okeysait.ru/v1/customers?' . http_build_query(['limit' => '50']));
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'GET',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . getenv('OKEANO_KEY'),
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
echo $status, PHP_EOL, $response, PHP_EOL;
import os

import requests

r = requests.get(
    "https://api.okeysait.ru/v1/customers",
    headers={"Authorization": f"Bearer {os.environ['OKEANO_KEY']}"},
    params={"limit": "50"},
    timeout=30,
)
print(r.status_code)
print(r.text)
// Node.js 18+: файл .mjs (await на верхнем уровне)
const url = new URL("https://api.okeysait.ru/v1/customers");
url.search = new URLSearchParams({ limit: "50" });
const res = await fetch(url, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.OKEANO_KEY}`,
  },
});
console.log(res.status);
console.log(await res.text());
// 1С:Предприятие 8.3
КлючОкеано = "oks_…"; // ключ из панели магазина; в рабочей базе храните его отдельно от кода
Соединение = Новый HTTPСоединение("api.okeysait.ru", 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/customers?limit=50");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючОкеано);

Ответ = Соединение.Получить(Запрос);
Сообщить(Ответ.КодСостояния);
Сообщить(Ответ.ПолучитьТелоКакСтроку());
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
	"os"
)

func main() {
	q := url.Values{}
	q.Set("limit", "50")
	req, err := http.NewRequest("GET", "https://api.okeysait.ru/v1/customers?"+q.Encode(), nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer "+os.Getenv("OKEANO_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.StatusCode)
	fmt.Println(string(data))
}

Ответ 200

JSON
{
  "data": [
    {
      "id": 41,
      "name": "Анна Лесная",
      "email": "anna@example.com",
      "phone": "+79990001122",
      "enabled": true,
      "created_at": "2026-10-29T18:05:00+00:00"
    }
  ],
  "next_cursor": null
}

Другие ответы: 400, 401, 403, 429 — коды ошибок.

Покупатель

GET/customers/{id}право customers:read

Параметры

ПараметрГдеТипОписание
id обязателенв путицелоеНомер объекта.

Пример запроса

curl https://api.okeysait.ru/v1/customers/41 \
  -H "Authorization: Bearer $OKEANO_KEY"
<?php
$ch = curl_init('https://api.okeysait.ru/v1/customers/41');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'GET',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . getenv('OKEANO_KEY'),
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
echo $status, PHP_EOL, $response, PHP_EOL;
import os

import requests

r = requests.get(
    "https://api.okeysait.ru/v1/customers/41",
    headers={"Authorization": f"Bearer {os.environ['OKEANO_KEY']}"},
    timeout=30,
)
print(r.status_code)
print(r.text)
// Node.js 18+: файл .mjs (await на верхнем уровне)
const res = await fetch("https://api.okeysait.ru/v1/customers/41", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.OKEANO_KEY}`,
  },
});
console.log(res.status);
console.log(await res.text());
// 1С:Предприятие 8.3
КлючОкеано = "oks_…"; // ключ из панели магазина; в рабочей базе храните его отдельно от кода
Соединение = Новый HTTPСоединение("api.okeysait.ru", 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/customers/41");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючОкеано);

Ответ = Соединение.Получить(Запрос);
Сообщить(Ответ.КодСостояния);
Сообщить(Ответ.ПолучитьТелоКакСтроку());
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.okeysait.ru/v1/customers/41", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer "+os.Getenv("OKEANO_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.StatusCode)
	fmt.Println(string(data))
}

Ответ 200

JSON
{
  "id": 41,
  "name": "Анна Лесная",
  "email": "anna@example.com",
  "phone": "+79990001122",
  "enabled": true,
  "created_at": "2026-10-29T18:05:00+00:00"
}

Другие ответы: 401, 403, 404, 429 — коды ошибок.

Выбор города
Ваш город можно выбрать через корзину или в комментариях к заказу