Ocoya
API

Wbuduj publikowanie w social media w swój produkt.

Przejrzyste REST API z opublikowaną specyfikacją OpenAPI pozwala wbudować publikowanie w social media wspierane przez AI w każdą aplikację, przepływ pracy lub agenta, którego budujesz.

POST /v1/post
curl -X POST https://app.ocoya.com/api/_public/v1/post \
-H "X-API-Key: $OCOYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"socialProfileIds": ["sp_8f2a1c"],
"caption": "New summer menu is here ☀️",
"media": ["https://cdn.example.com/summer.jpg"],
"scheduledAt": "2026-09-01T09:00:00Z"
}'
201 Created
{
"id": "post_8f2a1c",
"status": "SCHEDULED",
"scheduledAt": "2026-09-01T09:00:00Z"
}

Przejrzyste REST + OpenAPI

Przewidywalne zasoby REST z opublikowaną specyfikacją OpenAPI — wygeneruj klienta w dowolnym języku.

Uwierzytelnianie kluczem API

Wysyłaj nagłówek X-API-Key — twórz i unieważniaj klucze dla każdej marki w ustawieniach.

AI w zestawie

To samo generowanie postów i kampanii przez AI, z którego korzysta aplikacja, dostępne z twojego backendu.

Ten sam silnik co aplikacja

Każdy endpoint odzwierciedla to, co napędza samą Ocoya — niczego nie ukrywamy.

OpenAPI

Specyfikacja, z której wygenerujesz klienta.

Całe API v1 jest dostępne jako dokument OpenAPI, więc nie musisz czytać opisów i ręcznie pisać obiektów żądań. Wygeneruj typowanego klienta w języku, w którym już pracujesz, albo podłącz do niego Postmana, Insomnię lub własne narzędzia.

  • Typowani klienci w każdym języku obsługiwanym przez generatory
  • Struktury żądań i odpowiedzi zawsze zgodne z API
  • Wrzuć ją bez zmian do swoich narzędzi API
openapi.jsonv1
{
"openapi": "3.1.0",
"paths": {
"/v1/post": { ... },
"/v1/campaigns": { ... }
}
}
TypeScriptPythonGoRubyPHPJava

Wygeneruj typowanego klienta w języku, w którym już piszesz, albo podłącz swoje narzędzia API bezpośrednio do specyfikacji.

Domyślnie asynchronicznie

Długie zadania zwracają odpowiedź od razu.

Generowanie kampanii przez AI trafia do kolejki, zamiast działać w ramach twojego żądania. Wywołanie od razu zwraca id kampanii; odpytuj zasób, a posty będą się pojawiać w miarę pisania, więc nic w twojej aplikacji nie czeka na model.

  • Utworzenie kampanii od razu zwraca id
  • Odpytuj zasób kampanii, by śledzić pojawiające się posty
  • Generowanie AI korzysta z tych samych kredytów co aplikacja
POST /v1/campaignsgenerating
// returns immediately
{ "id": "cmp_8fa2", "status": "generating", "posts": 8 }
Post 1 — Instagram
Post 2 — LinkedIn
Post 3 — X
Post 4 — Instagram
Post 5 — TikTok

Wywołanie zwraca odpowiedź natychmiast. Odpytuj zasób kampanii, a posty pojawiają się w miarę generowania — nic nie blokuje wątku twojego żądania.

Zasoby

Wszystko, co potrafi aplikacja, dostępne bezpośrednio.

Osiem zasobów REST obejmuje całą platformę — publikowanie, kampanie AI, zasoby marki, przepływy pracy i marki.

/v1/post

Twórz, planuj, aktualizuj i publikuj posty w połączonych sieciach.

/v1/campaigns

Kolejkuj generowanie kampanii AI i śledź posty w miarę ich powstawania.

/v1/social-profiles

Wyświetlaj połączone profile i rozpoczynaj nowe połączenia.

/v1/hashtag-libraries

Pobieraj dobrane zestawy hashtagów, by programowo dołączać je do postów.

/v1/studio-templates

Wyświetlaj szablony projektów Studio wielokrotnego użytku do nowych treści.

/v1/workflow

Podglądaj, włączaj i wyłączaj oraz uruchamiaj przepływy pracy na żądanie.

/v1/brands

Wyliczaj marki i poprawnie zawężaj każde wywołanie.

/v1/me

Sprawdź token — kim jestem i do czego mam dostęp?

Cykl życia posta

Zawsze wiesz, na jakim etapie jest post.

Każdy post ma jeden z ośmiu statusów i możesz filtrować po każdym z nich. Odpytuj kampanię w trakcie generowania, wstrzymuj posty do akceptacji albo powiadamiaj własne systemy, gdy tylko coś wymaga człowieka.

Błędy nigdy nie znikają po cichu — NEEDS_ATTENTION i ERROR zawierają powód podany przez sieć, więc możesz go pokazać we własnym interfejsie.

GET /v1/post?statuses=

8 wartości
GENERATING
DRAFT
PENDING_INTERNAL_APPROVAL
PENDING_CLIENT_APPROVAL
SCHEDULED
POSTED
NEEDS_ATTENTION
ERROR

Żądania w tym oknie

60s

RateLimit-Limit

60

RateLimit-Remaining

17

RateLimit-Reset

38

429 Too Many Requests
{
"message": "You've exceeded the request limit."
}
Limity

Przewidywalne limity, standardowe nagłówki.

Domyślnie 60 żądań na minutę. Każda odpowiedź zawiera standardowe nagłówki RateLimit-* — twój klient może więc zwolnić, zanim w ogóle dostanie 429. Bez zgadywania i nieudokumentowanego ograniczania.

Odczytuj pozostały limit z każdej odpowiedziOdpowiedź 429 mówi dokładnie, kiedy spróbować ponowniePublikowanie hurtowe działa po stronie serwera, a nie żądanie po żądaniu
Onboarding

Pozwól użytkownikom łączyć własne konta.

Poproś o adres URL połączenia i przekaż go użytkownikowi. Zatwierdza on dostęp w samej sieci, a profil trafia do twojej marki, gotowy do publikacji — nigdy nie dotykasz tokenu społecznościowego, a użytkownik nigdy nie widzi Ocoya.

To sprawia, że API nadaje się do produktu z własnymi klientami, a nie tylko do automatyzacji własnego konta.

1Twoja aplikacjaPOST /v1/social-profiles/connection-url
2OcoyaZwraca jednorazowy adres URL startu OAuth
3Twój użytkownikZatwierdza na Instagramie, X, LinkedInie…
4Twoja aplikacjaProfil pojawia się w /v1/social-profiles

Twoi użytkownicy nigdy nie widzą logowania do Ocoya — połączenie trafia do twojej marki.

Budujesz raczej agenta AI?

Ta sama platforma jest dostępna przez MCP — ponad 20 narzędzi, które twój agent może wywoływać bezpośrednio, bez kodu sklejającego REST.

Poznaj MCP
Pytania

API — odpowiedzi.

Utwórz klucz API w Settings → API i wysyłaj go w nagłówku X-API-Key do bazowego adresu URL https://app.ocoya.com/api/_public/v1. Klucze są przypisane do marki i można je w każdej chwili unieważnić — trzymaj je po stronie serwera.

Zacznij wbudowywać publikowanie w social media.

Pobierz token API i wykonaj pierwsze wywołanie w kilka minut.