Dokumentacja dla programistów›API Marketplace›Rabaty na aplikacje z Marketplace
Dokumentacja dla programistów

Rabaty na aplikacje z Marketplace

API MarketplaceDokumentacja API
Aktualizacja 2026-09-06

Deweloperzy Marketplace mogą przyznawać rabaty na subskrypcje aplikacji, aby przyciągać i zatrzymywać użytkowników. Rabatami można zarządzać, tworzyć je i usuwać zarówno w Developer Center, jak i za pomocą API platformy.

Zapytania

Pobieranie rabatów na aplikacje z Marketplace

  • Działa tylko w przypadku współpracowników aplikacji
  • Zwraca tablicę zawierającą metadane dotyczące rabatu na daną aplikację
  • Można wykonać tylko bezpośrednio na poziomie głównym. Nie można zagnieżdżać go w innym zapytaniu
query {
  marketplace_app_discounts(app_id: 123456) {
    account_slug
    discount
    valid_until     
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });

const query = "query ($appId: ID!) { marketplace_app_discounts (app_id: $appId) { account_slug discount valid_until     } }"
const variables = {
  appId: 123456
};

Argumenty

Argument Typ Opis
app_id ID! Unikalny identyfikator aplikacji.

Pola

Pole Typ Opis Wartości wyliczeniowe
account_id ID! Unikalny identyfikator konta.
account_slug String! Slug konta.
app_plan_ids [String!]! Identyfikatory planów aplikacji.
created_at String! Data utworzenia rabatu.
discount Int! Procentowa wartość rabatu.
is_recurring Boolean! Informacja, czy rabat jest cykliczny.
period DiscountPeriod Okres obowiązywania rabatu. Jeśli zwraca null, rabat dotyczy zarówno planów rocznych, jak i miesięcznych. MONTHLY
YEARLY
valid_until String! Data, do której obowiązuje rabat.

Mutacje

Tworzenie rabatu na aplikację z Marketplace

Dostępne tylko w wersji 2026-04 i nowszych

Tworzy rabat na aplikację z Marketplace. Zwraca CreateMarketplaceAppDiscountResult!.

mutation {
  create_marketplace_app_discount_offer(
    app_id: "12345"
    account_slug: "my-company"
    discount_data: {
      discount: 20
      days_valid: 30
      period: MONTHLY
      app_plan_ids: ["plan_001"]
    }
  ) {
    granted_discount {
      app_id
      app_plan_ids
      discount
      period
    }
  }
}

Argumenty

Argument Typ Opis
account_slug String! Slug konta.
app_id ID! Unikalny identyfikator aplikacji.
discount_data CreateMarketplaceAppDiscountInput! Szczegóły rabatu.

Przyznawanie rabatu na aplikację z Marketplace

Ta mutacja zostanie w przyszłości wycofana. Zalecamy używanie zamiast niej create_marketplace_app_discount.

Przyznaje rabat na nową subskrypcję aplikacji z Marketplace. Zwraca GrantMarketplaceAppDiscountResult!.

mutation {
  grant_marketplace_app_discount(
    account_slug: "Test"
    app_id: 123456
    data: {
      app_plan_ids: ["Basic"]
      days_valid: 30
      discount: 10
      is_recurring: false
      period: MONTHLY
    }
  ) {
    granted_discount {
      app_id
      period
      discount
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });

const query = "mutation ($slug: String!, $appId: ID!, $appPlanIds: [String!]!, $days: Int!, $discountPercent: Int!, $recurring: Boolean!, $period: DiscountPeriod) { grant_marketplace_app_discount ( account_slug: $slug, app_id: $appId, data: {app_plan_ids: $appPlanIds, days_valid: $days, discount: $discountPercent, is_recurring: $recurring, period: $period }) { granted_discount { app_id period discount } } }"
const variables = {
  appId: 123456,
  slug: "my-team-monday",
  appPlanIds: ["Basic"], 
  days: 30, 
  discountPercent: 10, 
  recurring: false, 
  period: "MONTHLY" 
};
const response = await mondayApiClient.request(query, variables);

Argumenty

Argument Typ Opis
account_slug String! Slug konta.
app_id ID! Unikalny identyfikator aplikacji.
data GrantMarketplaceAppDiscountData! Szczegóły rabatu.

Usuwanie rabatu na aplikację z Marketplace

Usuwa istniejący rabat na subskrypcję aplikacji z Marketplace. Zwraca DeleteMarketplaceAppDiscountResult!.

mutation {
  delete_marketplace_app_discount(
    account_slug: "Test", 
    app_id: 123456
  ) {
    deleted_discount {
      account_slug
      app_id
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });

const query =
  "mutation ($slug: String!, $appId: ID!) { delete_marketplace_app_discount ( account_slug: $slug, app_id: $appId ) { deleted_discount { account_slug app_id } } }";
const variables = {
  appId: 123456,
  slug: "my-team-monday",
};
const response = await mondayApiClient.request(query, variables);

Argumenty

Argument Typ Opis
account_slug String! Slug konta.
app_id ID! Unikalny identyfikator aplikacji.

Obsługa błędów

Listę typowych błędów, strategii ponawiania prób i przykładów rozwiązywania problemów znajdziesz w artykule Obsługa błędów API.

Podczas wywoływania marketplace_app_discounts, grant_marketplace_app_discount lub delete_marketplace_app_discount mogą sporadycznie wystąpić standardowe błędy GraphQL lub HTTP. Oto najczęstsze kategorie błędów, które warto sprawdzić:

Typ błędu Opis Co zrobić
Błąd uprawnień lub współpracownika Wywołujący nie jest współpracownikiem aplikacji lub podany app_id nie należy do niego. Sprawdź, czy token użytkownika należy do współpracownika wskazanej aplikacji (app_id).
Błąd walidacji Zapytanie lub mutacja zawiera nieprawidłowe argumenty, brakujące pola lub jest nieprawidłowo zagnieżdżona. Upewnij się, że zapytanie marketplace_app_discounts jest wykonywane na poziomie głównym, a wszystkie wymagane argumenty (np. app_id lub account_slug) mają prawidłowy typ.
Nie znaleziono obiektu do usunięcia Próba usunięcia rabatu, który nie istnieje dla wskazanego konta lub aplikacji. Przed wywołaniem delete_marketplace_app_discount sprawdź, czy rabat istnieje.
Błąd limitu zapytań Zbyt wiele żądań w krótkim czasie. Poczekaj i ponów próbę po czasie określonym w nagłówku Retry-After (jeśli został podany).
Błąd serwera lub sieci Tymczasowa awaria lub problem z połączeniem. Ponów próbę z wykładniczym opóźnieniem. Jeśli problem nie ustąpi, skontaktuj się z pomocą techniczną monday.com i podaj request_id.