Skip to content

Replace a coupon

PUT
/coupons/{id}
curl --request PUT \
--url https://api.proxyrequest.com/api/v1/coupons/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "value": 1, "code": "us", "is_multi_use": true, "is_available_to_one_time": true, "marketer": "550e8400-e29b-41d4-a716-446655440001", "type": "free_data", "limit": 100, "valid_until": "2026-07-01T12:30:00Z", "packages": [ "package" ] }'

Replaces the writable fields of a coupon. Staff access is required.

id
required
string

A unique value identifying this Coupon.

object
value
required

Arbitrary coupon value

integer format: int64
>= -9223372036854776000 <= 9223372036854776000
code

Coupon code cannot be changed if already set

string
>= 1 characters <= 30 characters
is_multi_use
Multi-use

If true, coupon can be used multiple times.

boolean
is_available_to_one_time
Available for One-Time Purchases

If true, coupon can not be used for one-time package tiers.

boolean
marketer

The marketer who owns this coupon. Required if is_marketer is true.

string format: uuid
nullable
type
required
  • free_data - Free Data * monetary - Money * percentage - Percentage
string
Allowed values: free_data monetary percentage
limit

Number of times coupon can be used

integer
>= -2147483648 <= 2147483647
valid_until

Leave empty for coupons that never expire

string format: date-time
nullable
packages
Available for specific packages

Select packages for which this coupon is available. If no packages are selected, the coupon is available to all packages.

Array<string>
Examples
Exampleexample

Example request

{
"value": 1,
"code": "us",
"is_multi_use": true,
"is_available_to_one_time": true,
"marketer": "550e8400-e29b-41d4-a716-446655440001",
"type": "free_data",
"limit": 100,
"valid_until": "2026-07-01T12:30:00Z",
"packages": [
"package"
]
}

The operation completed successfully.

Media typeapplication/json
object
id
string
<= 36 characters
redeemed_count
required
integer
is_expired
required
boolean
is_redeemed
required
boolean
packages
required
Array<object>
object
id
string
<= 36 characters
name
required

Unique display name for this package shown to customers and in the admin. Residential Starter Business Pro

string
>= 2 characters <= 255 characters
alias
required

Lowercase alphanumeric identifier used internally for package resolution and proxy username routing. Cannot be changed without affecting active connections. residential01 bizpro

string
>= 2 characters <= 255 characters /^[a-z0-9]+$/
is_unlimited_data
Unlimited Data

When enabled, users on this package have no data cap. The proxy will not enforce any bandwidth limit.

boolean
targeting_options
required
object
package
required
string
split_char
required
string
value_char
required
string
continent
required
string
country
required
string
region
required
string
city
required
string
asn
required
string
isp
required
string
username
required
string
pool
required
string
location
required
string
location_format
required
string
session
required
string
session_mode_tag
required
string
session_ttl
required
string
session_ttl_format
required
integer
os
required
string
os_combined
required
boolean
os_split_char
required
string
os_linux
required
string
os_windows
required
string
os_ios
required
string
os_macos
required
string
os_android
required
string
stats
required
object
key
additional properties
created
required
string format: date-time
value
required

Arbitrary coupon value

integer format: int64
>= -9223372036854776000 <= 9223372036854776000
code
required

Leaving this field empty will generate a random code.

string
is_multi_use
Multi-use

If true, coupon can be used multiple times.

boolean
is_available_to_one_time
Available for One-Time Purchases

If true, coupon can not be used for one-time package tiers.

boolean
type
required
  • free_data - Free Data * monetary - Money * percentage - Percentage
string
Allowed values: free_data monetary percentage
limit

Number of times coupon can be used

integer
>= -2147483648 <= 2147483647
valid_until

Leave empty for coupons that never expire

string format: date-time
nullable
marketer

The marketer who owns this coupon. Required if is_marketer is true.

string format: uuid
nullable
user
required

The user who created this coupon.

string format: uuid
nullable
Examples
Exampleexample

Example response

{
"id": "550e8400-e29b-41d4-a716-446655440001",
"redeemed_count": 1,
"is_expired": true,
"is_redeemed": true,
"packages": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Residential 10 GB",
"alias": "residential-10gb",
"is_unlimited_data": true,
"targeting_options": {
"package": "package",
"split_char": "-",
"value_char": "-",
"continent": "continent",
"country": "us",
"region": "california",
"city": "los_angeles",
"asn": "15169",
"isp": "comcast",
"username": "developer",
"pool": "residential",
"location": "location",
"location_format": "location format",
"session": "session",
"session_mode_tag": "session mode tag",
"session_ttl": "session ttl",
"session_ttl_format": 1,
"os": "os",
"os_combined": true,
"os_split_char": "os split char",
"os_linux": "os linux",
"os_windows": "os windows",
"os_ios": "os ios",
"os_macos": "os macos",
"os_android": "os android"
}
}
],
"stats": {},
"created": "2026-07-01T12:30:00Z",
"value": 1,
"code": "us",
"is_multi_use": true,
"is_available_to_one_time": true,
"type": "free_data",
"limit": 100,
"valid_until": "2026-07-01T12:30:00Z",
"marketer": "550e8400-e29b-41d4-a716-446655440001",
"user": "550e8400-e29b-41d4-a716-446655440001"
}

The request is malformed or violates a business rule.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleValidationError

Validation error

{
"non_field_errors": [
"The request could not be processed."
],
"translation": "errors.request.invalid"
}

Authentication credentials are missing, expired, or invalid.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleAuthenticationRequired

Authentication required

{
"detail": "Authentication credentials were not provided."
}

The authenticated account cannot perform this operation.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExamplePermissionDenied

Permission denied

{
"detail": "You do not have permission to perform this action."
}

The requested resource does not exist in the current account scope.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleResourceNotFound

Resource not found

{
"detail": "Not found."
}