growsurf-python 1.2.0__py3-none-any.whl → 1.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- growsurf/_version.py +1 -1
- growsurf/resources/account.py +30 -10
- growsurf/resources/campaign/campaign.py +22 -22
- growsurf/resources/campaign/commission.py +6 -4
- growsurf/resources/campaign/design.py +14 -12
- growsurf/resources/campaign/emails.py +16 -18
- growsurf/resources/campaign/installation.py +16 -16
- growsurf/resources/campaign/options.py +20 -22
- growsurf/resources/campaign/participant.py +94 -90
- growsurf/resources/campaign/reward.py +8 -6
- growsurf/resources/campaign/rewards.py +30 -16
- growsurf/resources/team.py +56 -36
- {growsurf_python-1.2.0.dist-info → growsurf_python-1.2.1.dist-info}/METADATA +1 -1
- {growsurf_python-1.2.0.dist-info → growsurf_python-1.2.1.dist-info}/RECORD +16 -16
- {growsurf_python-1.2.0.dist-info → growsurf_python-1.2.1.dist-info}/WHEEL +0 -0
- {growsurf_python-1.2.0.dist-info → growsurf_python-1.2.1.dist-info}/licenses/LICENSE +0 -0
growsurf/_version.py
CHANGED
growsurf/resources/account.py
CHANGED
|
@@ -46,11 +46,21 @@ class AccountResource(SyncAPIResource):
|
|
|
46
46
|
extra_body: Body | None = None,
|
|
47
47
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
48
48
|
) -> CreateAccountResponse:
|
|
49
|
-
"""
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
"""
|
|
50
|
+
Creates a new GrowSurf account. This is the only endpoint that does not require
|
|
51
|
+
an API key. The response includes an API key for the new account, shown once in
|
|
52
|
+
the response. The key is locked until the team owner's email address is
|
|
53
|
+
verified: authenticated program and resource endpoints return a `403` with error
|
|
54
|
+
code `EMAIL_NOT_VERIFIED_ERROR` until then (resend the email via `POST
|
|
55
|
+
/team/owner/verification-email`, then retry). A welcome email is sent to the
|
|
56
|
+
address with the verification link and a set-password link for dashboard access.
|
|
57
|
+
Accounts whose email is never verified are deleted automatically after 7 days.
|
|
58
|
+
For security, the API key is rotated the first time the account owner signs in
|
|
59
|
+
to the GrowSurf dashboard. Some actions (such as emailing participants)
|
|
60
|
+
additionally require GrowSurf to verify the team first. By creating an account
|
|
61
|
+
you agree, on behalf of the account holder, to GrowSurf's [Terms of
|
|
62
|
+
Service](https://growsurf.com/terms) and [Privacy
|
|
63
|
+
Policy](https://growsurf.com/privacy).
|
|
54
64
|
|
|
55
65
|
Args:
|
|
56
66
|
email: The email address for the new GrowSurf account. Personal emails and disposable email addresses are not accepted.
|
|
@@ -116,11 +126,21 @@ class AsyncAccountResource(AsyncAPIResource):
|
|
|
116
126
|
extra_body: Body | None = None,
|
|
117
127
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
118
128
|
) -> CreateAccountResponse:
|
|
119
|
-
"""
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
129
|
+
"""
|
|
130
|
+
Creates a new GrowSurf account. This is the only endpoint that does not require
|
|
131
|
+
an API key. The response includes an API key for the new account, shown once in
|
|
132
|
+
the response. The key is locked until the team owner's email address is
|
|
133
|
+
verified: authenticated program and resource endpoints return a `403` with error
|
|
134
|
+
code `EMAIL_NOT_VERIFIED_ERROR` until then (resend the email via `POST
|
|
135
|
+
/team/owner/verification-email`, then retry). A welcome email is sent to the
|
|
136
|
+
address with the verification link and a set-password link for dashboard access.
|
|
137
|
+
Accounts whose email is never verified are deleted automatically after 7 days.
|
|
138
|
+
For security, the API key is rotated the first time the account owner signs in
|
|
139
|
+
to the GrowSurf dashboard. Some actions (such as emailing participants)
|
|
140
|
+
additionally require GrowSurf to verify the team first. By creating an account
|
|
141
|
+
you agree, on behalf of the account holder, to GrowSurf's [Terms of
|
|
142
|
+
Service](https://growsurf.com/terms) and [Privacy
|
|
143
|
+
Policy](https://growsurf.com/privacy).
|
|
124
144
|
|
|
125
145
|
Args:
|
|
126
146
|
email: The email address for the new GrowSurf account. Personal emails and disposable email addresses are not accepted.
|
|
@@ -196,9 +196,8 @@ class CampaignResource(SyncAPIResource):
|
|
|
196
196
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
197
197
|
) -> Campaign:
|
|
198
198
|
"""
|
|
199
|
-
Creates a new program
|
|
200
|
-
|
|
201
|
-
by the API key's bound team. Requires the team owner's verified email.
|
|
199
|
+
Creates a new program, plus any optional program rewards. The new program is
|
|
200
|
+
created in `DRAFT` status and owned by the API key's bound team.
|
|
202
201
|
|
|
203
202
|
Args:
|
|
204
203
|
type: The program type. Immutable after creation.
|
|
@@ -289,8 +288,8 @@ class CampaignResource(SyncAPIResource):
|
|
|
289
288
|
Updates a program's identity and lifecycle. Only the fields you send are
|
|
290
289
|
changed. `type`, `urlId`, and `currencyISO` are immutable. Editor-tab
|
|
291
290
|
configuration (design, emails, options, installation) is edited via the
|
|
292
|
-
dedicated config sub-resources, not here. The program cannot be deleted via
|
|
293
|
-
|
|
291
|
+
dedicated config sub-resources, not here. The program cannot be deleted via this
|
|
292
|
+
endpoint.
|
|
294
293
|
|
|
295
294
|
Args:
|
|
296
295
|
status: The requested program status. `IN_PROGRESS` publishes or resumes the program;
|
|
@@ -458,7 +457,8 @@ class CampaignResource(SyncAPIResource):
|
|
|
458
457
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
459
458
|
) -> ParticipantCommissionList:
|
|
460
459
|
"""
|
|
461
|
-
Retrieves a paged list of all participant
|
|
460
|
+
**Affiliate programs only.** Retrieves a paged list of all participant
|
|
461
|
+
commissions in an affiliate program.
|
|
462
462
|
|
|
463
463
|
Args:
|
|
464
464
|
limit: Number of results to return. Maximum 100.
|
|
@@ -628,7 +628,8 @@ class CampaignResource(SyncAPIResource):
|
|
|
628
628
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
629
629
|
) -> ParticipantPayoutList:
|
|
630
630
|
"""
|
|
631
|
-
Retrieves a paged list of all participant payouts
|
|
631
|
+
**Affiliate programs only.** Retrieves a paged list of all participant payouts
|
|
632
|
+
in an affiliate program.
|
|
632
633
|
|
|
633
634
|
Args:
|
|
634
635
|
limit: Number of results to return. Maximum 100.
|
|
@@ -762,10 +763,9 @@ class CampaignResource(SyncAPIResource):
|
|
|
762
763
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
763
764
|
) -> CampaignRetrieveAnalyticsResponse:
|
|
764
765
|
"""
|
|
765
|
-
Retrieves analytics for a program. Pass
|
|
766
|
-
(
|
|
767
|
-
|
|
768
|
-
time.
|
|
766
|
+
Retrieves analytics for a program. Pass `interval` to also get a time-series
|
|
767
|
+
(`series`) alongside the totals, and `include` to add previous-period totals,
|
|
768
|
+
status breakdowns, or derived rates — useful for detecting trends over time.
|
|
769
769
|
|
|
770
770
|
Args:
|
|
771
771
|
days: Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
|
|
@@ -898,9 +898,8 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
898
898
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
899
899
|
) -> Campaign:
|
|
900
900
|
"""
|
|
901
|
-
Creates a new program
|
|
902
|
-
|
|
903
|
-
by the API key's bound team. Requires the team owner's verified email.
|
|
901
|
+
Creates a new program, plus any optional program rewards. The new program is
|
|
902
|
+
created in `DRAFT` status and owned by the API key's bound team.
|
|
904
903
|
|
|
905
904
|
Args:
|
|
906
905
|
type: The program type. Immutable after creation.
|
|
@@ -991,8 +990,8 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
991
990
|
Updates a program's identity and lifecycle. Only the fields you send are
|
|
992
991
|
changed. `type`, `urlId`, and `currencyISO` are immutable. Editor-tab
|
|
993
992
|
configuration (design, emails, options, installation) is edited via the
|
|
994
|
-
dedicated config sub-resources, not here. The program cannot be deleted via
|
|
995
|
-
|
|
993
|
+
dedicated config sub-resources, not here. The program cannot be deleted via this
|
|
994
|
+
endpoint.
|
|
996
995
|
|
|
997
996
|
Args:
|
|
998
997
|
status: The requested program status. `IN_PROGRESS` publishes or resumes the program;
|
|
@@ -1160,7 +1159,8 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1160
1159
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1161
1160
|
) -> ParticipantCommissionList:
|
|
1162
1161
|
"""
|
|
1163
|
-
Retrieves a paged list of all participant
|
|
1162
|
+
**Affiliate programs only.** Retrieves a paged list of all participant
|
|
1163
|
+
commissions in an affiliate program.
|
|
1164
1164
|
|
|
1165
1165
|
Args:
|
|
1166
1166
|
limit: Number of results to return. Maximum 100.
|
|
@@ -1330,7 +1330,8 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1330
1330
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1331
1331
|
) -> ParticipantPayoutList:
|
|
1332
1332
|
"""
|
|
1333
|
-
Retrieves a paged list of all participant payouts
|
|
1333
|
+
**Affiliate programs only.** Retrieves a paged list of all participant payouts
|
|
1334
|
+
in an affiliate program.
|
|
1334
1335
|
|
|
1335
1336
|
Args:
|
|
1336
1337
|
limit: Number of results to return. Maximum 100.
|
|
@@ -1464,10 +1465,9 @@ class AsyncCampaignResource(AsyncAPIResource):
|
|
|
1464
1465
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1465
1466
|
) -> CampaignRetrieveAnalyticsResponse:
|
|
1466
1467
|
"""
|
|
1467
|
-
Retrieves analytics for a program. Pass
|
|
1468
|
-
(
|
|
1469
|
-
|
|
1470
|
-
time.
|
|
1468
|
+
Retrieves analytics for a program. Pass `interval` to also get a time-series
|
|
1469
|
+
(`series`) alongside the totals, and `include` to add previous-period totals,
|
|
1470
|
+
status breakdowns, or derived rates — useful for detecting trends over time.
|
|
1471
1471
|
|
|
1472
1472
|
Args:
|
|
1473
1473
|
days: Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
|
|
@@ -56,7 +56,7 @@ class CommissionResource(SyncAPIResource):
|
|
|
56
56
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
57
57
|
) -> CommissionDeleteResponse:
|
|
58
58
|
"""
|
|
59
|
-
Removes a pending participant commission.
|
|
59
|
+
**Affiliate programs only.** Removes a pending participant commission.
|
|
60
60
|
|
|
61
61
|
Args:
|
|
62
62
|
extra_headers: Send extra headers
|
|
@@ -92,7 +92,8 @@ class CommissionResource(SyncAPIResource):
|
|
|
92
92
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
93
93
|
) -> CommissionApproveResponse:
|
|
94
94
|
"""
|
|
95
|
-
Approves a pending participant commission so it can
|
|
95
|
+
**Affiliate programs only.** Approves a pending participant commission so it can
|
|
96
|
+
become eligible for payout.
|
|
96
97
|
|
|
97
98
|
Args:
|
|
98
99
|
extra_headers: Send extra headers
|
|
@@ -151,7 +152,7 @@ class AsyncCommissionResource(AsyncAPIResource):
|
|
|
151
152
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
152
153
|
) -> CommissionDeleteResponse:
|
|
153
154
|
"""
|
|
154
|
-
Removes a pending participant commission.
|
|
155
|
+
**Affiliate programs only.** Removes a pending participant commission.
|
|
155
156
|
|
|
156
157
|
Args:
|
|
157
158
|
extra_headers: Send extra headers
|
|
@@ -187,7 +188,8 @@ class AsyncCommissionResource(AsyncAPIResource):
|
|
|
187
188
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
188
189
|
) -> CommissionApproveResponse:
|
|
189
190
|
"""
|
|
190
|
-
Approves a pending participant commission so it can
|
|
191
|
+
**Affiliate programs only.** Approves a pending participant commission so it can
|
|
192
|
+
become eligible for payout.
|
|
191
193
|
|
|
192
194
|
Args:
|
|
193
195
|
extra_headers: Send extra headers
|
|
@@ -57,9 +57,11 @@ class DesignResource(SyncAPIResource):
|
|
|
57
57
|
) -> CampaignDesign:
|
|
58
58
|
"""
|
|
59
59
|
Retrieves a program's design configuration — the same surface as the dashboard
|
|
60
|
-
Program Editor's **Design** tab
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
Program Editor's **Design** tab: the GrowSurf window layout, header, share
|
|
61
|
+
channels + invite, signup form, portal/landing pages, theme styling, and the
|
|
62
|
+
referral/affiliate summary + status sections. This is a large object whose
|
|
63
|
+
available fields depend on the program type; the response includes every field
|
|
64
|
+
and its current value, which is the same shape you send back on `PATCH`.
|
|
63
65
|
|
|
64
66
|
Args:
|
|
65
67
|
extra_headers: Send extra headers
|
|
@@ -96,9 +98,8 @@ class DesignResource(SyncAPIResource):
|
|
|
96
98
|
Updates a program's design configuration. Only the fields you send are changed;
|
|
97
99
|
anything you leave out is untouched (arrays such as `signup.fields` replace
|
|
98
100
|
wholesale). Unknown fields, fields not available for the program type, and
|
|
99
|
-
invalid values return a `400`.
|
|
100
|
-
|
|
101
|
-
fields you want to change.
|
|
101
|
+
invalid values return a `400`. Landing-page custom code and JavaScript are not
|
|
102
|
+
editable via the API.
|
|
102
103
|
|
|
103
104
|
Args:
|
|
104
105
|
body: A partial `CampaignDesign` object — only the fields you send are changed.
|
|
@@ -158,9 +159,11 @@ class AsyncDesignResource(AsyncAPIResource):
|
|
|
158
159
|
) -> CampaignDesign:
|
|
159
160
|
"""
|
|
160
161
|
Retrieves a program's design configuration — the same surface as the dashboard
|
|
161
|
-
Program Editor's **Design** tab
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
Program Editor's **Design** tab: the GrowSurf window layout, header, share
|
|
163
|
+
channels + invite, signup form, portal/landing pages, theme styling, and the
|
|
164
|
+
referral/affiliate summary + status sections. This is a large object whose
|
|
165
|
+
available fields depend on the program type; the response includes every field
|
|
166
|
+
and its current value, which is the same shape you send back on `PATCH`.
|
|
164
167
|
|
|
165
168
|
Args:
|
|
166
169
|
extra_headers: Send extra headers
|
|
@@ -197,9 +200,8 @@ class AsyncDesignResource(AsyncAPIResource):
|
|
|
197
200
|
Updates a program's design configuration. Only the fields you send are changed;
|
|
198
201
|
anything you leave out is untouched (arrays such as `signup.fields` replace
|
|
199
202
|
wholesale). Unknown fields, fields not available for the program type, and
|
|
200
|
-
invalid values return a `400`.
|
|
201
|
-
|
|
202
|
-
fields you want to change.
|
|
203
|
+
invalid values return a `400`. Landing-page custom code and JavaScript are not
|
|
204
|
+
editable via the API.
|
|
203
205
|
|
|
204
206
|
Args:
|
|
205
207
|
body: A partial `CampaignDesign` object — only the fields you send are changed.
|
|
@@ -56,10 +56,11 @@ class EmailsResource(SyncAPIResource):
|
|
|
56
56
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
57
57
|
) -> CampaignEmails:
|
|
58
58
|
"""
|
|
59
|
-
Retrieves a program's
|
|
60
|
-
Program Editor's **Emails** tab.
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
Retrieves a program's email configuration — the same surface as the dashboard
|
|
60
|
+
Program Editor's **Emails** tab. Returns each editable email template
|
|
61
|
+
(`subject`, `preheader`, `body`, `isEnabled`) plus the `settings` block (sender,
|
|
62
|
+
contact, and design). The set of email templates returned depends on the program
|
|
63
|
+
type (referral vs affiliate).
|
|
63
64
|
|
|
64
65
|
Args:
|
|
65
66
|
extra_headers: Send extra headers
|
|
@@ -95,12 +96,10 @@ class EmailsResource(SyncAPIResource):
|
|
|
95
96
|
"""
|
|
96
97
|
Updates a program's email configuration. Only the fields you send are changed;
|
|
97
98
|
omitted fields are left untouched. You may only write the email templates the
|
|
98
|
-
dashboard exposes for the program type — writing a template that is not
|
|
99
|
-
for the program type returns a `400`. Some fields are read-only
|
|
99
|
+
dashboard exposes for the program type — writing a template that is not
|
|
100
|
+
available for the program type returns a `400`. Some fields are read-only
|
|
100
101
|
(`settings.sender.fromEmail`, whose custom value requires dashboard domain
|
|
101
|
-
verification).
|
|
102
|
-
current value, `GET` this resource first, then `PATCH` back only the fields you
|
|
103
|
-
want to change.
|
|
102
|
+
verification).
|
|
104
103
|
|
|
105
104
|
Args:
|
|
106
105
|
body: A partial `CampaignEmails` object — only the fields you send are changed.
|
|
@@ -159,10 +158,11 @@ class AsyncEmailsResource(AsyncAPIResource):
|
|
|
159
158
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
160
159
|
) -> CampaignEmails:
|
|
161
160
|
"""
|
|
162
|
-
Retrieves a program's
|
|
163
|
-
Program Editor's **Emails** tab.
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
Retrieves a program's email configuration — the same surface as the dashboard
|
|
162
|
+
Program Editor's **Emails** tab. Returns each editable email template
|
|
163
|
+
(`subject`, `preheader`, `body`, `isEnabled`) plus the `settings` block (sender,
|
|
164
|
+
contact, and design). The set of email templates returned depends on the program
|
|
165
|
+
type (referral vs affiliate).
|
|
166
166
|
|
|
167
167
|
Args:
|
|
168
168
|
extra_headers: Send extra headers
|
|
@@ -198,12 +198,10 @@ class AsyncEmailsResource(AsyncAPIResource):
|
|
|
198
198
|
"""
|
|
199
199
|
Updates a program's email configuration. Only the fields you send are changed;
|
|
200
200
|
omitted fields are left untouched. You may only write the email templates the
|
|
201
|
-
dashboard exposes for the program type — writing a template that is not
|
|
202
|
-
for the program type returns a `400`. Some fields are read-only
|
|
201
|
+
dashboard exposes for the program type — writing a template that is not
|
|
202
|
+
available for the program type returns a `400`. Some fields are read-only
|
|
203
203
|
(`settings.sender.fromEmail`, whose custom value requires dashboard domain
|
|
204
|
-
verification).
|
|
205
|
-
current value, `GET` this resource first, then `PATCH` back only the fields you
|
|
206
|
-
want to change.
|
|
204
|
+
verification).
|
|
207
205
|
|
|
208
206
|
Args:
|
|
209
207
|
body: A partial `CampaignEmails` object — only the fields you send are changed.
|
|
@@ -56,10 +56,10 @@ class InstallationResource(SyncAPIResource):
|
|
|
56
56
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
57
57
|
) -> CampaignInstallation:
|
|
58
58
|
"""
|
|
59
|
-
Retrieves a program's installation configuration — the same surface as the
|
|
60
|
-
Program Editor's **Installation** tab
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
Retrieves a program's installation configuration — the same surface as the
|
|
60
|
+
dashboard Program Editor's **Installation** tab (plus the Mobile SDK settings).
|
|
61
|
+
Includes the referral trigger (referral programs only), signup tracking method,
|
|
62
|
+
share URL and whitelist, custom-form signup settings, and mobile SDK settings.
|
|
63
63
|
|
|
64
64
|
Args:
|
|
65
65
|
extra_headers: Send extra headers
|
|
@@ -95,10 +95,10 @@ class InstallationResource(SyncAPIResource):
|
|
|
95
95
|
"""
|
|
96
96
|
Updates a program's installation configuration. Only the fields you send are
|
|
97
97
|
changed; omitted fields are left untouched. `referralTrigger` is only available
|
|
98
|
-
for referral programs. `mobile.publicKey` is read-only
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
for referral programs. `mobile.publicKey` is read-only; if no key exists yet,
|
|
99
|
+
enabling `mobile.isEnabled` creates one. Changing `shareUrl` re-resolves its
|
|
100
|
+
redirect destinations, which may take a moment to complete. URLs must include an
|
|
101
|
+
explicit `http://` or `https://` scheme.
|
|
102
102
|
|
|
103
103
|
Args:
|
|
104
104
|
body: A partial `CampaignInstallation` object — only the fields you send are changed.
|
|
@@ -157,10 +157,10 @@ class AsyncInstallationResource(AsyncAPIResource):
|
|
|
157
157
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
158
158
|
) -> CampaignInstallation:
|
|
159
159
|
"""
|
|
160
|
-
Retrieves a program's installation configuration — the same surface as the
|
|
161
|
-
Program Editor's **Installation** tab
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
Retrieves a program's installation configuration — the same surface as the
|
|
161
|
+
dashboard Program Editor's **Installation** tab (plus the Mobile SDK settings).
|
|
162
|
+
Includes the referral trigger (referral programs only), signup tracking method,
|
|
163
|
+
share URL and whitelist, custom-form signup settings, and mobile SDK settings.
|
|
164
164
|
|
|
165
165
|
Args:
|
|
166
166
|
extra_headers: Send extra headers
|
|
@@ -196,10 +196,10 @@ class AsyncInstallationResource(AsyncAPIResource):
|
|
|
196
196
|
"""
|
|
197
197
|
Updates a program's installation configuration. Only the fields you send are
|
|
198
198
|
changed; omitted fields are left untouched. `referralTrigger` is only available
|
|
199
|
-
for referral programs. `mobile.publicKey` is read-only
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
for referral programs. `mobile.publicKey` is read-only; if no key exists yet,
|
|
200
|
+
enabling `mobile.isEnabled` creates one. Changing `shareUrl` re-resolves its
|
|
201
|
+
redirect destinations, which may take a moment to complete. URLs must include an
|
|
202
|
+
explicit `http://` or `https://` scheme.
|
|
203
203
|
|
|
204
204
|
Args:
|
|
205
205
|
body: A partial `CampaignInstallation` object — only the fields you send are changed.
|
|
@@ -56,10 +56,11 @@ class OptionsResource(SyncAPIResource):
|
|
|
56
56
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
57
57
|
) -> CampaignOptions:
|
|
58
58
|
"""
|
|
59
|
-
Retrieves a program's options
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
Retrieves a program's options — the same surface as the dashboard Program
|
|
60
|
+
Editor's **Options** tab. Includes reward/fraud approval, anti-fraud lists +
|
|
61
|
+
toggles, referral cookie/credit windows, reCAPTCHA, payout threshold + tax
|
|
62
|
+
settings (affiliate only), and notification-email settings.
|
|
63
|
+
`fraud.recaptcha.secretKey` is never returned.
|
|
63
64
|
|
|
64
65
|
Args:
|
|
65
66
|
extra_headers: Send extra headers
|
|
@@ -93,14 +94,12 @@ class OptionsResource(SyncAPIResource):
|
|
|
93
94
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
94
95
|
) -> CampaignOptions:
|
|
95
96
|
"""
|
|
96
|
-
Updates a program's options. Only the fields you send are changed. Some fields
|
|
97
|
-
program-type specific (`requireManualRewardApproval`/`autoFulfillRewards`
|
|
98
|
-
referral-only; `payoutThreshold`/`taxDocumentation` are affiliate-only, and
|
|
97
|
+
Updates a program's options. Only the fields you send are changed. Some fields
|
|
98
|
+
are program-type specific (`requireManualRewardApproval`/`autoFulfillRewards`
|
|
99
|
+
are referral-only; `payoutThreshold`/`taxDocumentation` are affiliate-only, and
|
|
99
100
|
affiliate programs require `requireParticipantAuth: true`).
|
|
100
|
-
`fraud.recaptcha.secretKey` is write-only. `referralCreditWindowDays: null`
|
|
101
|
-
"never expires".
|
|
102
|
-
current value, `GET` this resource first, then `PATCH` back only the fields you
|
|
103
|
-
want to change.
|
|
101
|
+
`fraud.recaptcha.secretKey` is write-only. `referralCreditWindowDays: null`
|
|
102
|
+
means "never expires".
|
|
104
103
|
|
|
105
104
|
Args:
|
|
106
105
|
body: A partial `CampaignOptions` object — only the fields you send are changed.
|
|
@@ -159,10 +158,11 @@ class AsyncOptionsResource(AsyncAPIResource):
|
|
|
159
158
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
160
159
|
) -> CampaignOptions:
|
|
161
160
|
"""
|
|
162
|
-
Retrieves a program's options
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
Retrieves a program's options — the same surface as the dashboard Program
|
|
162
|
+
Editor's **Options** tab. Includes reward/fraud approval, anti-fraud lists +
|
|
163
|
+
toggles, referral cookie/credit windows, reCAPTCHA, payout threshold + tax
|
|
164
|
+
settings (affiliate only), and notification-email settings.
|
|
165
|
+
`fraud.recaptcha.secretKey` is never returned.
|
|
166
166
|
|
|
167
167
|
Args:
|
|
168
168
|
extra_headers: Send extra headers
|
|
@@ -196,14 +196,12 @@ class AsyncOptionsResource(AsyncAPIResource):
|
|
|
196
196
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
197
197
|
) -> CampaignOptions:
|
|
198
198
|
"""
|
|
199
|
-
Updates a program's options. Only the fields you send are changed. Some fields
|
|
200
|
-
program-type specific (`requireManualRewardApproval`/`autoFulfillRewards`
|
|
201
|
-
referral-only; `payoutThreshold`/`taxDocumentation` are affiliate-only, and
|
|
199
|
+
Updates a program's options. Only the fields you send are changed. Some fields
|
|
200
|
+
are program-type specific (`requireManualRewardApproval`/`autoFulfillRewards`
|
|
201
|
+
are referral-only; `payoutThreshold`/`taxDocumentation` are affiliate-only, and
|
|
202
202
|
affiliate programs require `requireParticipantAuth: true`).
|
|
203
|
-
`fraud.recaptcha.secretKey` is write-only. `referralCreditWindowDays: null`
|
|
204
|
-
"never expires".
|
|
205
|
-
current value, `GET` this resource first, then `PATCH` back only the fields you
|
|
206
|
-
want to change.
|
|
203
|
+
`fraud.recaptcha.secretKey` is write-only. `referralCreditWindowDays: null`
|
|
204
|
+
means "never expires".
|
|
207
205
|
|
|
208
206
|
Args:
|
|
209
207
|
body: A partial `CampaignOptions` object — only the fields you send are changed.
|
|
@@ -244,15 +244,14 @@ class ParticipantResource(SyncAPIResource):
|
|
|
244
244
|
extra_body: Body | None = None,
|
|
245
245
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
246
246
|
) -> ParticipantBulkDeleteResponse:
|
|
247
|
-
"""
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
`
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
and payout records.
|
|
247
|
+
"""
|
|
248
|
+
Deletes a list of participants from a program in one request. Each entry in
|
|
249
|
+
`participants` is a GrowSurf participant ID or an email address (mixed lists are
|
|
250
|
+
allowed). Up to `200` entries per request — chunk larger lists across multiple
|
|
251
|
+
calls. The response reports a per-row `status` for every submitted entry, so a
|
|
252
|
+
`200` can include rows that were `NOT_FOUND` or failed. Deletion is permanent
|
|
253
|
+
and removes the participants' referrals, rewards, commissions, and payout
|
|
254
|
+
records.
|
|
256
255
|
|
|
257
256
|
Args:
|
|
258
257
|
participants: GrowSurf participant IDs and/or email addresses to delete. Mixed entries are
|
|
@@ -299,9 +298,8 @@ class ParticipantResource(SyncAPIResource):
|
|
|
299
298
|
extra_body: Body | None = None,
|
|
300
299
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
301
300
|
) -> Participant:
|
|
302
|
-
"""
|
|
303
|
-
|
|
304
|
-
If the email already exists, the existing
|
|
301
|
+
"""
|
|
302
|
+
Adds a new participant to the program. If the email already exists, the existing
|
|
305
303
|
participant is returned.
|
|
306
304
|
|
|
307
305
|
Args:
|
|
@@ -366,7 +364,8 @@ class ParticipantResource(SyncAPIResource):
|
|
|
366
364
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
367
365
|
) -> ParticipantCommissionList:
|
|
368
366
|
"""
|
|
369
|
-
Retrieves a paged list of commissions earned by a
|
|
367
|
+
**Affiliate programs only.** Retrieves a paged list of commissions earned by a
|
|
368
|
+
participant.
|
|
370
369
|
|
|
371
370
|
Args:
|
|
372
371
|
limit: Number of results to return. Maximum 100.
|
|
@@ -428,7 +427,8 @@ class ParticipantResource(SyncAPIResource):
|
|
|
428
427
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
429
428
|
) -> ParticipantPayoutList:
|
|
430
429
|
"""
|
|
431
|
-
Retrieves a paged list of payouts that belong to a
|
|
430
|
+
**Affiliate programs only.** Retrieves a paged list of payouts that belong to a
|
|
431
|
+
participant.
|
|
432
432
|
|
|
433
433
|
Args:
|
|
434
434
|
limit: Number of results to return. Maximum 100.
|
|
@@ -655,16 +655,12 @@ class ParticipantResource(SyncAPIResource):
|
|
|
655
655
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
656
656
|
) -> ParticipantRecordTransactionResponse:
|
|
657
657
|
"""
|
|
658
|
-
Records a sale made by a referred customer and
|
|
659
|
-
for their referrer when applicable.
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
do not count, since they identify the customer or subscription rather than the
|
|
665
|
-
specific transaction. Without an identifier, resending the same sale creates a
|
|
666
|
-
duplicate commission and double-pays the referrer; the server rejects such
|
|
667
|
-
requests with HTTP 400.
|
|
658
|
+
**Affiliate programs only.** Records a sale made by a referred customer and
|
|
659
|
+
generates affiliate commissions for their referrer when applicable. Requires at
|
|
660
|
+
least one transaction identifier (externalId, transactionId, orderId, paymentId,
|
|
661
|
+
invoiceId, paymentIntentId, or chargeId) so repeated requests can be
|
|
662
|
+
de-duplicated — without one, a resent sale would create a second commission.
|
|
663
|
+
Reuse the same identifier(s) when refunding.
|
|
668
664
|
|
|
669
665
|
Args:
|
|
670
666
|
extra_headers: Send extra headers
|
|
@@ -754,11 +750,12 @@ class ParticipantResource(SyncAPIResource):
|
|
|
754
750
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
755
751
|
) -> ParticipantRefundTransactionResponse:
|
|
756
752
|
"""
|
|
757
|
-
Records an amendment (refund, partial refund,
|
|
758
|
-
chargeback) against a previously recorded transaction
|
|
759
|
-
the referrer's commission. The inverse of Record
|
|
760
|
-
|
|
761
|
-
|
|
753
|
+
**Affiliate programs only.** Records an amendment (refund, partial refund,
|
|
754
|
+
refund cancellation, or chargeback) against a previously recorded transaction
|
|
755
|
+
and reverses or adjusts the referrer's commission. The inverse of Record
|
|
756
|
+
Affiliate Transaction. Identify the original transaction with the same
|
|
757
|
+
identifier(s) you sent when recording it. Commissions already paid out to the
|
|
758
|
+
affiliate are not clawed back; the amendment is recorded for tax reporting only.
|
|
762
759
|
|
|
763
760
|
Args:
|
|
764
761
|
extra_headers: Send extra headers
|
|
@@ -824,8 +821,7 @@ class ParticipantResource(SyncAPIResource):
|
|
|
824
821
|
) -> ParticipantSendInvitesResponse:
|
|
825
822
|
"""
|
|
826
823
|
Sends email invites on behalf of a participant to a list of email addresses.
|
|
827
|
-
|
|
828
|
-
Sending invites via the API requires a verified custom email domain on the
|
|
824
|
+
Sending invites via the API requires a **verified custom email domain** on the
|
|
829
825
|
program; the request fails until one is verified.
|
|
830
826
|
|
|
831
827
|
Args:
|
|
@@ -878,7 +874,10 @@ class ParticipantResource(SyncAPIResource):
|
|
|
878
874
|
) -> ParticipantTriggerReferralResponse:
|
|
879
875
|
"""
|
|
880
876
|
Triggers referral credit for an existing referred participant by GrowSurf
|
|
881
|
-
participant ID or email address.
|
|
877
|
+
participant ID or email address. Optionally pass `delayInDays` to hold the
|
|
878
|
+
credit for a number of days before it is awarded (for example, to cover your own
|
|
879
|
+
refund window). A delayed trigger can be cancelled before it is awarded with the
|
|
880
|
+
Cancel delayed referral trigger request (DELETE on this same path).
|
|
882
881
|
|
|
883
882
|
Args:
|
|
884
883
|
delay_in_days: Number of whole days to hold referral credit before it is awarded. Useful for
|
|
@@ -929,8 +928,11 @@ class ParticipantResource(SyncAPIResource):
|
|
|
929
928
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
930
929
|
) -> ParticipantTriggerReferralResponse:
|
|
931
930
|
"""
|
|
932
|
-
Cancels a pending delayed referral trigger for a participant
|
|
933
|
-
|
|
931
|
+
Cancels a pending delayed referral trigger for a participant (the companion to a
|
|
932
|
+
delayed Trigger referral request). Use this to undo a scheduled referral credit
|
|
933
|
+
before it is awarded, for example when a refund occurs inside your refund
|
|
934
|
+
window. If the participant has no pending delayed trigger, `success` is returned
|
|
935
|
+
as `false`.
|
|
934
936
|
|
|
935
937
|
Args:
|
|
936
938
|
extra_headers: Send extra headers
|
|
@@ -976,14 +978,14 @@ class ParticipantResource(SyncAPIResource):
|
|
|
976
978
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
977
979
|
) -> EmailParticipantResponse:
|
|
978
980
|
"""
|
|
979
|
-
Sends an email to a participant. Provide EITHER
|
|
980
|
-
the program's configured email templates, OR
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
verified by GrowSurf. Requires a verified custom email domain on the
|
|
985
|
-
|
|
986
|
-
until one is verified. The email is accepted for delivery.
|
|
981
|
+
Sends an email to a participant. Provide EITHER `emailType` to trigger one of
|
|
982
|
+
the program's configured email templates, OR `subject` + `body` for a free-form
|
|
983
|
+
email. Free-form emails are sent with the same compliance handling (company
|
|
984
|
+
name, postal address, and an unsubscribe link are added automatically, and
|
|
985
|
+
unsubscribed participants are suppressed). Sending requires the team to be
|
|
986
|
+
verified by GrowSurf. Requires a **verified custom email domain** on the program
|
|
987
|
+
(which can be completed in *Campaign Editor > 3. Emails > Email Settings*).
|
|
988
|
+
Returns `400` until one is verified. The email is accepted for delivery.
|
|
987
989
|
|
|
988
990
|
Args:
|
|
989
991
|
email_type: The program email template to trigger (template mode). The valid values depend on
|
|
@@ -1115,9 +1117,9 @@ class ParticipantResource(SyncAPIResource):
|
|
|
1115
1117
|
) -> ParticipantAnalyticsResponse:
|
|
1116
1118
|
"""
|
|
1117
1119
|
Retrieves analytics for a single participant — all-time engagement counters,
|
|
1118
|
-
leaderboard ranks, and per-channel share counts (plus affiliate money metrics
|
|
1119
|
-
affiliate programs). Useful for segmenting and re-engaging participants.
|
|
1120
|
-
|
|
1120
|
+
leaderboard ranks, and per-channel share counts (plus affiliate money metrics
|
|
1121
|
+
for affiliate programs). Useful for segmenting and re-engaging participants.
|
|
1122
|
+
Pass `include=series` to also get this participant's own activity over time.
|
|
1121
1123
|
|
|
1122
1124
|
Args:
|
|
1123
1125
|
days: Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
|
|
@@ -1363,15 +1365,14 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1363
1365
|
extra_body: Body | None = None,
|
|
1364
1366
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1365
1367
|
) -> ParticipantBulkDeleteResponse:
|
|
1366
|
-
"""
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
`
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
and payout records.
|
|
1368
|
+
"""
|
|
1369
|
+
Deletes a list of participants from a program in one request. Each entry in
|
|
1370
|
+
`participants` is a GrowSurf participant ID or an email address (mixed lists are
|
|
1371
|
+
allowed). Up to `200` entries per request — chunk larger lists across multiple
|
|
1372
|
+
calls. The response reports a per-row `status` for every submitted entry, so a
|
|
1373
|
+
`200` can include rows that were `NOT_FOUND` or failed. Deletion is permanent
|
|
1374
|
+
and removes the participants' referrals, rewards, commissions, and payout
|
|
1375
|
+
records.
|
|
1375
1376
|
|
|
1376
1377
|
Args:
|
|
1377
1378
|
participants: GrowSurf participant IDs and/or email addresses to delete. Mixed entries are
|
|
@@ -1418,9 +1419,8 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1418
1419
|
extra_body: Body | None = None,
|
|
1419
1420
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1420
1421
|
) -> Participant:
|
|
1421
|
-
"""
|
|
1422
|
-
|
|
1423
|
-
If the email already exists, the existing
|
|
1422
|
+
"""
|
|
1423
|
+
Adds a new participant to the program. If the email already exists, the existing
|
|
1424
1424
|
participant is returned.
|
|
1425
1425
|
|
|
1426
1426
|
Args:
|
|
@@ -1485,7 +1485,8 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1485
1485
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1486
1486
|
) -> ParticipantCommissionList:
|
|
1487
1487
|
"""
|
|
1488
|
-
Retrieves a paged list of commissions earned by a
|
|
1488
|
+
**Affiliate programs only.** Retrieves a paged list of commissions earned by a
|
|
1489
|
+
participant.
|
|
1489
1490
|
|
|
1490
1491
|
Args:
|
|
1491
1492
|
limit: Number of results to return. Maximum 100.
|
|
@@ -1547,7 +1548,8 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1547
1548
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1548
1549
|
) -> ParticipantPayoutList:
|
|
1549
1550
|
"""
|
|
1550
|
-
Retrieves a paged list of payouts that belong to a
|
|
1551
|
+
**Affiliate programs only.** Retrieves a paged list of payouts that belong to a
|
|
1552
|
+
participant.
|
|
1551
1553
|
|
|
1552
1554
|
Args:
|
|
1553
1555
|
limit: Number of results to return. Maximum 100.
|
|
@@ -1774,16 +1776,12 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1774
1776
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1775
1777
|
) -> ParticipantRecordTransactionResponse:
|
|
1776
1778
|
"""
|
|
1777
|
-
Records a sale made by a referred customer and
|
|
1778
|
-
for their referrer when applicable.
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
do not count, since they identify the customer or subscription rather than the
|
|
1784
|
-
specific transaction. Without an identifier, resending the same sale creates a
|
|
1785
|
-
duplicate commission and double-pays the referrer; the server rejects such
|
|
1786
|
-
requests with HTTP 400.
|
|
1779
|
+
**Affiliate programs only.** Records a sale made by a referred customer and
|
|
1780
|
+
generates affiliate commissions for their referrer when applicable. Requires at
|
|
1781
|
+
least one transaction identifier (externalId, transactionId, orderId, paymentId,
|
|
1782
|
+
invoiceId, paymentIntentId, or chargeId) so repeated requests can be
|
|
1783
|
+
de-duplicated — without one, a resent sale would create a second commission.
|
|
1784
|
+
Reuse the same identifier(s) when refunding.
|
|
1787
1785
|
|
|
1788
1786
|
Args:
|
|
1789
1787
|
extra_headers: Send extra headers
|
|
@@ -1873,11 +1871,12 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1873
1871
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1874
1872
|
) -> ParticipantRefundTransactionResponse:
|
|
1875
1873
|
"""
|
|
1876
|
-
Records an amendment (refund, partial refund,
|
|
1877
|
-
chargeback) against a previously recorded transaction
|
|
1878
|
-
the referrer's commission. The inverse of Record
|
|
1879
|
-
|
|
1880
|
-
|
|
1874
|
+
**Affiliate programs only.** Records an amendment (refund, partial refund,
|
|
1875
|
+
refund cancellation, or chargeback) against a previously recorded transaction
|
|
1876
|
+
and reverses or adjusts the referrer's commission. The inverse of Record
|
|
1877
|
+
Affiliate Transaction. Identify the original transaction with the same
|
|
1878
|
+
identifier(s) you sent when recording it. Commissions already paid out to the
|
|
1879
|
+
affiliate are not clawed back; the amendment is recorded for tax reporting only.
|
|
1881
1880
|
|
|
1882
1881
|
Args:
|
|
1883
1882
|
extra_headers: Send extra headers
|
|
@@ -1943,8 +1942,7 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1943
1942
|
) -> ParticipantSendInvitesResponse:
|
|
1944
1943
|
"""
|
|
1945
1944
|
Sends email invites on behalf of a participant to a list of email addresses.
|
|
1946
|
-
|
|
1947
|
-
Sending invites via the API requires a verified custom email domain on the
|
|
1945
|
+
Sending invites via the API requires a **verified custom email domain** on the
|
|
1948
1946
|
program; the request fails until one is verified.
|
|
1949
1947
|
|
|
1950
1948
|
Args:
|
|
@@ -1997,7 +1995,10 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
1997
1995
|
) -> ParticipantTriggerReferralResponse:
|
|
1998
1996
|
"""
|
|
1999
1997
|
Triggers referral credit for an existing referred participant by GrowSurf
|
|
2000
|
-
participant ID or email address.
|
|
1998
|
+
participant ID or email address. Optionally pass `delayInDays` to hold the
|
|
1999
|
+
credit for a number of days before it is awarded (for example, to cover your own
|
|
2000
|
+
refund window). A delayed trigger can be cancelled before it is awarded with the
|
|
2001
|
+
Cancel delayed referral trigger request (DELETE on this same path).
|
|
2001
2002
|
|
|
2002
2003
|
Args:
|
|
2003
2004
|
delay_in_days: Number of whole days to hold referral credit before it is awarded. Useful for
|
|
@@ -2048,8 +2049,11 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
2048
2049
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
2049
2050
|
) -> ParticipantTriggerReferralResponse:
|
|
2050
2051
|
"""
|
|
2051
|
-
Cancels a pending delayed referral trigger for a participant
|
|
2052
|
-
|
|
2052
|
+
Cancels a pending delayed referral trigger for a participant (the companion to a
|
|
2053
|
+
delayed Trigger referral request). Use this to undo a scheduled referral credit
|
|
2054
|
+
before it is awarded, for example when a refund occurs inside your refund
|
|
2055
|
+
window. If the participant has no pending delayed trigger, `success` is returned
|
|
2056
|
+
as `false`.
|
|
2053
2057
|
|
|
2054
2058
|
Args:
|
|
2055
2059
|
extra_headers: Send extra headers
|
|
@@ -2095,14 +2099,14 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
2095
2099
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
2096
2100
|
) -> EmailParticipantResponse:
|
|
2097
2101
|
"""
|
|
2098
|
-
Sends an email to a participant. Provide EITHER
|
|
2099
|
-
the program's configured email templates, OR
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
verified by GrowSurf. Requires a verified custom email domain on the
|
|
2104
|
-
|
|
2105
|
-
until one is verified. The email is accepted for delivery.
|
|
2102
|
+
Sends an email to a participant. Provide EITHER `emailType` to trigger one of
|
|
2103
|
+
the program's configured email templates, OR `subject` + `body` for a free-form
|
|
2104
|
+
email. Free-form emails are sent with the same compliance handling (company
|
|
2105
|
+
name, postal address, and an unsubscribe link are added automatically, and
|
|
2106
|
+
unsubscribed participants are suppressed). Sending requires the team to be
|
|
2107
|
+
verified by GrowSurf. Requires a **verified custom email domain** on the program
|
|
2108
|
+
(which can be completed in *Campaign Editor > 3. Emails > Email Settings*).
|
|
2109
|
+
Returns `400` until one is verified. The email is accepted for delivery.
|
|
2106
2110
|
|
|
2107
2111
|
Args:
|
|
2108
2112
|
email_type: The program email template to trigger (template mode). The valid values depend on
|
|
@@ -2234,9 +2238,9 @@ class AsyncParticipantResource(AsyncAPIResource):
|
|
|
2234
2238
|
) -> ParticipantAnalyticsResponse:
|
|
2235
2239
|
"""
|
|
2236
2240
|
Retrieves analytics for a single participant — all-time engagement counters,
|
|
2237
|
-
leaderboard ranks, and per-channel share counts (plus affiliate money metrics
|
|
2238
|
-
affiliate programs). Useful for segmenting and re-engaging participants.
|
|
2239
|
-
|
|
2241
|
+
leaderboard ranks, and per-channel share counts (plus affiliate money metrics
|
|
2242
|
+
for affiliate programs). Useful for segmenting and re-engaging participants.
|
|
2243
|
+
Pass `include=series` to also get this participant's own activity over time.
|
|
2240
2244
|
|
|
2241
2245
|
Args:
|
|
2242
2246
|
days: Last number of days to retrieve analytics for. Defaults to 365. Maximum 1825.
|
|
@@ -96,8 +96,9 @@ class RewardResource(SyncAPIResource):
|
|
|
96
96
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
97
97
|
) -> RewardApproveResponse:
|
|
98
98
|
"""
|
|
99
|
-
Approves a manually approved reward earned by a participant.
|
|
100
|
-
`reward:write`.
|
|
99
|
+
Approves a manually approved reward earned by a participant. This requires
|
|
100
|
+
`reward:write`. When the request also sets `fulfill` to `true`, it additionally
|
|
101
|
+
requires `reward:fulfill`.
|
|
101
102
|
|
|
102
103
|
Args:
|
|
103
104
|
fulfill: Set true to mark the reward as fulfilled after approval.
|
|
@@ -136,7 +137,7 @@ class RewardResource(SyncAPIResource):
|
|
|
136
137
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
137
138
|
) -> RewardFulfillResponse:
|
|
138
139
|
"""
|
|
139
|
-
Marks an approved participant reward as fulfilled.
|
|
140
|
+
Marks an approved participant reward as fulfilled.
|
|
140
141
|
|
|
141
142
|
Args:
|
|
142
143
|
extra_headers: Send extra headers
|
|
@@ -233,8 +234,9 @@ class AsyncRewardResource(AsyncAPIResource):
|
|
|
233
234
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
234
235
|
) -> RewardApproveResponse:
|
|
235
236
|
"""
|
|
236
|
-
Approves a manually approved reward earned by a participant.
|
|
237
|
-
`reward:write`.
|
|
237
|
+
Approves a manually approved reward earned by a participant. This requires
|
|
238
|
+
`reward:write`. When the request also sets `fulfill` to `true`, it additionally
|
|
239
|
+
requires `reward:fulfill`.
|
|
238
240
|
|
|
239
241
|
Args:
|
|
240
242
|
fulfill: Set true to mark the reward as fulfilled after approval.
|
|
@@ -273,7 +275,7 @@ class AsyncRewardResource(AsyncAPIResource):
|
|
|
273
275
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
274
276
|
) -> RewardFulfillResponse:
|
|
275
277
|
"""
|
|
276
|
-
Marks an approved participant reward as fulfilled.
|
|
278
|
+
Marks an approved participant reward as fulfilled.
|
|
277
279
|
|
|
278
280
|
Args:
|
|
279
281
|
extra_headers: Send extra headers
|
|
@@ -83,10 +83,11 @@ class RewardsResource(SyncAPIResource):
|
|
|
83
83
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
84
84
|
) -> Reward:
|
|
85
85
|
"""
|
|
86
|
-
Creates a new campaign reward (`CampaignReward`) with a
|
|
87
|
-
reward type must be compatible with the program type (affiliate programs
|
|
88
|
-
only `AFFILIATE` rewards; referral programs support all other types).
|
|
89
|
-
active reward of a type automatically enables that reward type on
|
|
86
|
+
Creates a new campaign reward (`CampaignReward`) with a GrowSurf-assigned ID.
|
|
87
|
+
The reward type must be compatible with the program type (affiliate programs
|
|
88
|
+
support only `AFFILIATE` rewards; referral programs support all other types).
|
|
89
|
+
Enabling an active reward of a type automatically enables that reward type on
|
|
90
|
+
the program.
|
|
90
91
|
|
|
91
92
|
Args:
|
|
92
93
|
type: The reward type. Immutable after creation.
|
|
@@ -209,7 +210,10 @@ class RewardsResource(SyncAPIResource):
|
|
|
209
210
|
) -> Reward:
|
|
210
211
|
"""
|
|
211
212
|
Updates an existing campaign reward (`CampaignReward`). The reward `type` is
|
|
212
|
-
immutable and cannot be changed.
|
|
213
|
+
immutable and cannot be changed. When the update replaces `metadata`, renamed
|
|
214
|
+
keys automatically rewrite any `{{campaignReward[…]}}` references in campaign
|
|
215
|
+
copy; removing a key that campaign copy still references returns a `409` listing
|
|
216
|
+
the referencing fields.
|
|
213
217
|
|
|
214
218
|
Args:
|
|
215
219
|
commission_structure: The affiliate commission structure (AFFILIATE rewards only).
|
|
@@ -309,8 +313,9 @@ class RewardsResource(SyncAPIResource):
|
|
|
309
313
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
310
314
|
) -> CampaignRewardListResponse:
|
|
311
315
|
"""
|
|
312
|
-
Retrieves the list of a program's configured rewards (`CampaignReward`s)
|
|
313
|
-
set embedded in the `rewards` array of the campaign response.
|
|
316
|
+
Retrieves the list of a program's configured rewards (`CampaignReward`s) — the
|
|
317
|
+
same set embedded in the `rewards` array of the campaign response. Delete a
|
|
318
|
+
reward with `DELETE /campaign/{id}/reward-configs/{campaignRewardId}`.
|
|
314
319
|
|
|
315
320
|
Args:
|
|
316
321
|
extra_headers: Send extra headers
|
|
@@ -346,7 +351,9 @@ class RewardsResource(SyncAPIResource):
|
|
|
346
351
|
"""
|
|
347
352
|
Deletes a campaign reward (`CampaignReward`). The reward is deactivated, removed
|
|
348
353
|
from the program's reward set, and any connected upfront-discount coupons are
|
|
349
|
-
cleaned up.
|
|
354
|
+
cleaned up. If campaign copy still references any of the reward's metadata keys
|
|
355
|
+
via `{{campaignReward[…]}}` tokens, the delete returns a `409` listing the
|
|
356
|
+
referencing fields — update those fields first.
|
|
350
357
|
|
|
351
358
|
Args:
|
|
352
359
|
extra_headers: Send extra headers
|
|
@@ -425,10 +432,11 @@ class AsyncRewardsResource(AsyncAPIResource):
|
|
|
425
432
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
426
433
|
) -> Reward:
|
|
427
434
|
"""
|
|
428
|
-
Creates a new campaign reward (`CampaignReward`) with a
|
|
429
|
-
reward type must be compatible with the program type (affiliate programs
|
|
430
|
-
only `AFFILIATE` rewards; referral programs support all other types).
|
|
431
|
-
active reward of a type automatically enables that reward type on
|
|
435
|
+
Creates a new campaign reward (`CampaignReward`) with a GrowSurf-assigned ID.
|
|
436
|
+
The reward type must be compatible with the program type (affiliate programs
|
|
437
|
+
support only `AFFILIATE` rewards; referral programs support all other types).
|
|
438
|
+
Enabling an active reward of a type automatically enables that reward type on
|
|
439
|
+
the program.
|
|
432
440
|
|
|
433
441
|
Args:
|
|
434
442
|
type: The reward type. Immutable after creation.
|
|
@@ -551,7 +559,10 @@ class AsyncRewardsResource(AsyncAPIResource):
|
|
|
551
559
|
) -> Reward:
|
|
552
560
|
"""
|
|
553
561
|
Updates an existing campaign reward (`CampaignReward`). The reward `type` is
|
|
554
|
-
immutable and cannot be changed.
|
|
562
|
+
immutable and cannot be changed. When the update replaces `metadata`, renamed
|
|
563
|
+
keys automatically rewrite any `{{campaignReward[…]}}` references in campaign
|
|
564
|
+
copy; removing a key that campaign copy still references returns a `409` listing
|
|
565
|
+
the referencing fields.
|
|
555
566
|
|
|
556
567
|
Args:
|
|
557
568
|
commission_structure: The affiliate commission structure (AFFILIATE rewards only).
|
|
@@ -651,8 +662,9 @@ class AsyncRewardsResource(AsyncAPIResource):
|
|
|
651
662
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
652
663
|
) -> CampaignRewardListResponse:
|
|
653
664
|
"""
|
|
654
|
-
Retrieves the list of a program's configured rewards (`CampaignReward`s)
|
|
655
|
-
set embedded in the `rewards` array of the campaign response.
|
|
665
|
+
Retrieves the list of a program's configured rewards (`CampaignReward`s) — the
|
|
666
|
+
same set embedded in the `rewards` array of the campaign response. Delete a
|
|
667
|
+
reward with `DELETE /campaign/{id}/reward-configs/{campaignRewardId}`.
|
|
656
668
|
|
|
657
669
|
Args:
|
|
658
670
|
extra_headers: Send extra headers
|
|
@@ -688,7 +700,9 @@ class AsyncRewardsResource(AsyncAPIResource):
|
|
|
688
700
|
"""
|
|
689
701
|
Deletes a campaign reward (`CampaignReward`). The reward is deactivated, removed
|
|
690
702
|
from the program's reward set, and any connected upfront-discount coupons are
|
|
691
|
-
cleaned up.
|
|
703
|
+
cleaned up. If campaign copy still references any of the reward's metadata keys
|
|
704
|
+
via `{{campaignReward[…]}}` tokens, the delete returns a `409` listing the
|
|
705
|
+
referencing fields — update those fields first.
|
|
692
706
|
|
|
693
707
|
Args:
|
|
694
708
|
extra_headers: Send extra headers
|
growsurf/resources/team.py
CHANGED
|
@@ -44,10 +44,10 @@ class TeamResource(SyncAPIResource):
|
|
|
44
44
|
extra_body: Body | None = None,
|
|
45
45
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
46
46
|
) -> Team:
|
|
47
|
-
"""
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
"""
|
|
48
|
+
Retrieves the team bound to the API key or OAuth connection.
|
|
49
|
+
`verificationStatus` is `VERIFIED` once GrowSurf has verified the team, which is
|
|
50
|
+
required before a program can send participant emails.
|
|
51
51
|
"""
|
|
52
52
|
return self._get(
|
|
53
53
|
"/team",
|
|
@@ -66,9 +66,10 @@ class TeamResource(SyncAPIResource):
|
|
|
66
66
|
extra_body: Body | None = None,
|
|
67
67
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
68
68
|
) -> Team:
|
|
69
|
-
"""
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
"""
|
|
70
|
+
Updates the name of the team bound to the API key or OAuth connection. Any other
|
|
71
|
+
property is rejected with a `400`. Personal profiles, billing, and team
|
|
72
|
+
ownership are not editable here.
|
|
72
73
|
|
|
73
74
|
Args:
|
|
74
75
|
name: The team's display name.
|
|
@@ -98,11 +99,16 @@ class TeamResource(SyncAPIResource):
|
|
|
98
99
|
extra_body: Body | None = None,
|
|
99
100
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
100
101
|
) -> RotateApiKeyResponse:
|
|
101
|
-
"""
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
"""
|
|
103
|
+
Generates a new API key and makes the key used on this request stop working when
|
|
104
|
+
rotation succeeds. Send a unique, random `Idempotency-Key`. If the response is
|
|
105
|
+
interrupted, immediately retry with the original API key and the same
|
|
106
|
+
`Idempotency-Key` to receive the same new key. Update every integration that
|
|
107
|
+
used the old key. The team owner is notified by email whenever the key is
|
|
108
|
+
rotated. GrowSurf SDKs generate the idempotency key automatically. This endpoint
|
|
109
|
+
accepts an API key with `api_key:rotate`. If this scope is unavailable, rotate
|
|
110
|
+
the key in the authenticated dashboard instead. This operation is available only
|
|
111
|
+
through the REST API or a GrowSurf API SDK, not through MCP.
|
|
106
112
|
"""
|
|
107
113
|
return self._post(
|
|
108
114
|
"/api-key/rotate",
|
|
@@ -120,9 +126,10 @@ class TeamResource(SyncAPIResource):
|
|
|
120
126
|
extra_body: Body | None = None,
|
|
121
127
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
122
128
|
) -> Team:
|
|
123
|
-
"""
|
|
124
|
-
|
|
125
|
-
|
|
129
|
+
"""
|
|
130
|
+
Requests GrowSurf to verify the bound team (required before a program can email
|
|
131
|
+
its participants). Idempotent — calling it again while a request is pending does
|
|
132
|
+
not create a duplicate. Returns the team with its updated `verificationStatus`.
|
|
126
133
|
"""
|
|
127
134
|
return self._post(
|
|
128
135
|
"/team/verification-request",
|
|
@@ -140,9 +147,12 @@ class TeamResource(SyncAPIResource):
|
|
|
140
147
|
extra_body: Body | None = None,
|
|
141
148
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
142
149
|
) -> VerificationEmailResponse:
|
|
143
|
-
"""
|
|
144
|
-
|
|
145
|
-
|
|
150
|
+
"""
|
|
151
|
+
Resends the email-verification message to the bound team's owner. The response
|
|
152
|
+
never reveals the owner's email address. A `200` with `status: SENT` is returned
|
|
153
|
+
only when an email was actually dispatched. Returns `400` if the email is
|
|
154
|
+
already verified, and `429` if a verification email was sent too recently — wait
|
|
155
|
+
a moment, then retry.
|
|
146
156
|
"""
|
|
147
157
|
return self._post(
|
|
148
158
|
"/team/owner/verification-email",
|
|
@@ -174,10 +184,10 @@ class AsyncTeamResource(AsyncAPIResource):
|
|
|
174
184
|
extra_body: Body | None = None,
|
|
175
185
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
176
186
|
) -> Team:
|
|
177
|
-
"""
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
187
|
+
"""
|
|
188
|
+
Retrieves the team bound to the API key or OAuth connection.
|
|
189
|
+
`verificationStatus` is `VERIFIED` once GrowSurf has verified the team, which is
|
|
190
|
+
required before a program can send participant emails.
|
|
181
191
|
"""
|
|
182
192
|
return await self._get(
|
|
183
193
|
"/team",
|
|
@@ -196,9 +206,10 @@ class AsyncTeamResource(AsyncAPIResource):
|
|
|
196
206
|
extra_body: Body | None = None,
|
|
197
207
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
198
208
|
) -> Team:
|
|
199
|
-
"""
|
|
200
|
-
|
|
201
|
-
|
|
209
|
+
"""
|
|
210
|
+
Updates the name of the team bound to the API key or OAuth connection. Any other
|
|
211
|
+
property is rejected with a `400`. Personal profiles, billing, and team
|
|
212
|
+
ownership are not editable here.
|
|
202
213
|
|
|
203
214
|
Args:
|
|
204
215
|
name: The team's display name.
|
|
@@ -228,11 +239,16 @@ class AsyncTeamResource(AsyncAPIResource):
|
|
|
228
239
|
extra_body: Body | None = None,
|
|
229
240
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
230
241
|
) -> RotateApiKeyResponse:
|
|
231
|
-
"""
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
242
|
+
"""
|
|
243
|
+
Generates a new API key and makes the key used on this request stop working when
|
|
244
|
+
rotation succeeds. Send a unique, random `Idempotency-Key`. If the response is
|
|
245
|
+
interrupted, immediately retry with the original API key and the same
|
|
246
|
+
`Idempotency-Key` to receive the same new key. Update every integration that
|
|
247
|
+
used the old key. The team owner is notified by email whenever the key is
|
|
248
|
+
rotated. GrowSurf SDKs generate the idempotency key automatically. This endpoint
|
|
249
|
+
accepts an API key with `api_key:rotate`. If this scope is unavailable, rotate
|
|
250
|
+
the key in the authenticated dashboard instead. This operation is available only
|
|
251
|
+
through the REST API or a GrowSurf API SDK, not through MCP.
|
|
236
252
|
"""
|
|
237
253
|
return await self._post(
|
|
238
254
|
"/api-key/rotate",
|
|
@@ -250,9 +266,10 @@ class AsyncTeamResource(AsyncAPIResource):
|
|
|
250
266
|
extra_body: Body | None = None,
|
|
251
267
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
252
268
|
) -> Team:
|
|
253
|
-
"""
|
|
254
|
-
|
|
255
|
-
|
|
269
|
+
"""
|
|
270
|
+
Requests GrowSurf to verify the bound team (required before a program can email
|
|
271
|
+
its participants). Idempotent — calling it again while a request is pending does
|
|
272
|
+
not create a duplicate. Returns the team with its updated `verificationStatus`.
|
|
256
273
|
"""
|
|
257
274
|
return await self._post(
|
|
258
275
|
"/team/verification-request",
|
|
@@ -270,9 +287,12 @@ class AsyncTeamResource(AsyncAPIResource):
|
|
|
270
287
|
extra_body: Body | None = None,
|
|
271
288
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
272
289
|
) -> VerificationEmailResponse:
|
|
273
|
-
"""
|
|
274
|
-
|
|
275
|
-
|
|
290
|
+
"""
|
|
291
|
+
Resends the email-verification message to the bound team's owner. The response
|
|
292
|
+
never reveals the owner's email address. A `200` with `status: SENT` is returned
|
|
293
|
+
only when an email was actually dispatched. Returns `400` if the email is
|
|
294
|
+
already verified, and `429` if a verification email was sent too recently — wait
|
|
295
|
+
a moment, then retry.
|
|
276
296
|
"""
|
|
277
297
|
return await self._post(
|
|
278
298
|
"/team/owner/verification-email",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: growsurf-python
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: The official Python library for the growsurf API
|
|
5
5
|
Project-URL: Homepage, https://github.com/growsurf/growsurf-python
|
|
6
6
|
Project-URL: Repository, https://github.com/growsurf/growsurf-python
|
|
@@ -11,7 +11,7 @@ growsurf/_resource.py,sha256=oeDA0FL2ottIchoUi86M_8eUqmtrGQLYTgfKYEzrsWg,1112
|
|
|
11
11
|
growsurf/_response.py,sha256=RTZ8t27W4S6ExkCjzCg4HbcDUTCdOMgiheiMAuAxgu4,28937
|
|
12
12
|
growsurf/_streaming.py,sha256=9aJ_V6JtddntWCon2Cq_MOLMnySnhc7wuqeZx7sUtKU,10558
|
|
13
13
|
growsurf/_types.py,sha256=r8hAVihrutiLUToaJhSDys9T9sMc8BMy2qUrr3W_8Wo,7751
|
|
14
|
-
growsurf/_version.py,sha256=
|
|
14
|
+
growsurf/_version.py,sha256=a9IQzOgniCgsCGEzk7p2anAXmPo3nRDKRfaIjowMDbQ,160
|
|
15
15
|
growsurf/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
growsurf/_utils/__init__.py,sha256=nQq-iFa5YxTaWySaLigatew5rHgTR0M75FNYm4mrO1s,2313
|
|
17
17
|
growsurf/_utils/_compat.py,sha256=33246eDcl3pwL6kWsEhVuT4Akrd8gZEW9LPTm465ohk,1231
|
|
@@ -29,18 +29,18 @@ growsurf/_utils/_typing.py,sha256=N_5PPuFNsaygbtA_npZd98SVN1LQQvFTKL6bkWPBZGU,47
|
|
|
29
29
|
growsurf/_utils/_utils.py,sha256=2nPOzDrPe2GADpLCRM4bNQS8Mu7LjEiCG_LJ2AAL6jg,13111
|
|
30
30
|
growsurf/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
31
31
|
growsurf/resources/__init__.py,sha256=RYj6vjnPpErdBftiCuJtbwqGAnll4jXw6sg4qh6o988,1465
|
|
32
|
-
growsurf/resources/account.py,sha256=
|
|
33
|
-
growsurf/resources/team.py,sha256
|
|
32
|
+
growsurf/resources/account.py,sha256=1dxuYvHbt2YntkUxOYCWJQvUslsKnUDGnx7akltOQOs,8347
|
|
33
|
+
growsurf/resources/team.py,sha256=-MEVGrI3hEAl-j_aMnS07CPd0SJI_KwP6XqEqrLS9KQ,14367
|
|
34
34
|
growsurf/resources/campaign/__init__.py,sha256=XW5nmnR2dF-wzM0d9aoF5cZDC7c-XyyIOjdmPV8IPZ8,4875
|
|
35
|
-
growsurf/resources/campaign/campaign.py,sha256=
|
|
36
|
-
growsurf/resources/campaign/commission.py,sha256=
|
|
37
|
-
growsurf/resources/campaign/design.py,sha256=
|
|
38
|
-
growsurf/resources/campaign/emails.py,sha256=
|
|
39
|
-
growsurf/resources/campaign/installation.py,sha256=
|
|
40
|
-
growsurf/resources/campaign/options.py,sha256=
|
|
41
|
-
growsurf/resources/campaign/participant.py,sha256=
|
|
42
|
-
growsurf/resources/campaign/reward.py,sha256
|
|
43
|
-
growsurf/resources/campaign/rewards.py,sha256=
|
|
35
|
+
growsurf/resources/campaign/campaign.py,sha256=jk70Zl6uCyL5mukzns9Gk4FTDJE8ecrDto60hPmdBGk,75353
|
|
36
|
+
growsurf/resources/campaign/commission.py,sha256=Li8L2l8xRh4EXa_oD7R9RJ6m4xaA4pmt9gXTxib2Fkk,10426
|
|
37
|
+
growsurf/resources/campaign/design.py,sha256=pzc2GNaQNV1ZBvFhZwE_dosj-AWcKHJ46nCs_3i73rY,10926
|
|
38
|
+
growsurf/resources/campaign/emails.py,sha256=kECJC5jUUAw5RmarBfOAktGkXmg-5DFKTwcHN4ygVMc,10816
|
|
39
|
+
growsurf/resources/campaign/installation.py,sha256=mci_W2MGTHm23JgEVfIpmw_qbBNkSHgW636f6O89iPs,11198
|
|
40
|
+
growsurf/resources/campaign/options.py,sha256=VFwGYniEsHg8sAd4CIt48jJU9nmdi9P_kkaw4J3iz7o,10866
|
|
41
|
+
growsurf/resources/campaign/participant.py,sha256=6cC-iQ2S3jVhdVAUdif5zHI_1VQ7c3roZGTIIECfQM8,107764
|
|
42
|
+
growsurf/resources/campaign/reward.py,sha256=-TiRwBcG5UwdNO_ath3pL36Bimji2QXCxSFNW8Scanw,14308
|
|
43
|
+
growsurf/resources/campaign/rewards.py,sha256=ET2_vPRJp96P1kzawtTxaXtSF8hLzf98flqSELcHRj4,35555
|
|
44
44
|
growsurf/resources/campaign/webhooks.py,sha256=DRJ8-8QDibGEq1hT7MTkrlE5kdbEapZXiZb2z_kKM68,22666
|
|
45
45
|
growsurf/types/__init__.py,sha256=Au2V8z6APUZOYt-Lyy5X34gODWokEk_4jTWVnCmcZTg,2317
|
|
46
46
|
growsurf/types/account_create_params.py,sha256=BXaWsGsiiSbYvVy6ftPNwu7nA2m1xI4PvE1xGEoGeCo,602
|
|
@@ -121,7 +121,7 @@ growsurf/types/campaign/webhook_list_response.py,sha256=tSk9nTbcsj5Y-j4RjQwu9SZc
|
|
|
121
121
|
growsurf/types/campaign/webhook_test_params.py,sha256=X1Osg9-4KGJbZauG_7rDqTE7cKCypeSzgumIhnxj9dk,468
|
|
122
122
|
growsurf/types/campaign/webhook_test_response.py,sha256=AahcckKSLUeIgpwlosOOmbkioF62xREXgLbieHAPAdI,576
|
|
123
123
|
growsurf/types/campaign/webhook_update_params.py,sha256=SavKhws8pfybC7O40ovtCreEmOwihEGPOCEX9Iua9cE,598
|
|
124
|
-
growsurf_python-1.2.
|
|
125
|
-
growsurf_python-1.2.
|
|
126
|
-
growsurf_python-1.2.
|
|
127
|
-
growsurf_python-1.2.
|
|
124
|
+
growsurf_python-1.2.1.dist-info/METADATA,sha256=sHfDvFX8NdWuGULA2BtJh3vzAMqIez9-B1ybWcVziDc,13614
|
|
125
|
+
growsurf_python-1.2.1.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
126
|
+
growsurf_python-1.2.1.dist-info/licenses/LICENSE,sha256=kTHLVE-ra1gtTxcn395uFqcOzcErebE-mDdPNW7b8OU,11338
|
|
127
|
+
growsurf_python-1.2.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|