https://api.dev.bifrostgaming.com/v1/graphqlpartnerServerAction
v1Transitions a game server's billing status. Use this to activate, deactivate, or manage the billing lifecycle of servers created via the Create Server action. The server must belong to a guild owned by the specified ownerId.
Operation Type
Mutation
Rate Limit: 30 requests per minute per partner
Rate limits are applied per partner. Bulk operations should be spaced out.
Important usage notes
- The server must belong to a guild owned by the specified ownerId. If the ownership does not match, a 403 error is returned.
- Available billing statuses: ACTIVE (server is live and billed), ACTIVEFREE (active but not billed), INACTIVE (temporarily offline), NOPAYMENT (suspended for non-payment).
- CANCELLED and CANCELLEDREFUNDED are terminal states — once reached, no further status changes are allowed. Use Delete Server to cancel a server.
- CANCELLEDREFUNDED is only allowed within the refund grace period (default 72 hours from server creation).
- Include a reason field to document why the status is being changed (recommended for audit trail).
Input Fields
| Field | Type | Required | Description |
|---|---|---|---|
partnerId | String! | Required | Your unique partner identifier. This was provided to you when your partner account was created. |
encryptedData | String! | Required | Your JSON payload encrypted with AES-256-GCM using your partner encryption key, then Base64 encoded. See the Encryption Guide for details. |
Encrypted Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
action | String | Required | Must be "CHANGE_STATUS". |
timestamp | Number | Required | Current time in Unix milliseconds. Must be within 5 minutes of server time. |
nonce | String | Required | A unique random string, at least 16 characters. Use a UUID or similar. |
ownerId | String | Required | The guild owner's email. Used to verify the server belongs to this guild. |
gameServerId | String | Required | The server ID returned from Create Server. |
status | String | Required | New billing status. One of: ACTIVE, ACTIVEFREE, INACTIVE, NOPAYMENT. |
reason | String | Optional | Human-readable reason for the status change. Recorded in the audit log. |
These fields make up the JSON payload that is encrypted with AES-256-GCM before being sent as encryptedData.
Code Examples
# Step 1: Encrypt your payload (see Encryption Guide)
# Step 2: Send the encrypted payload
curl -X POST https://api.dev.bifrostgaming.com/v1/graphql \
-H "Content-Type: application/json" \
-d '{
"query": "mutation PartnerServerAction($input: PartnerServerActionInput!) { partnerServerAction(input: $input) { success statusCode message serverId } }",
"variables": {
"input": {
"partnerId": "your-partner-id",
"encryptedData": "BASE64_ENCRYPTED_PAYLOAD_HERE"
}
}
}'Postman Collection
Download a ready-to-use Postman collection for this endpoint. Import it into Postman to start testing immediately.
How to import into Postman
- Open Postman and click Import (top-left)
- Drag and drop the downloaded
.jsonfile, or click Upload Files and select it - Click Import to confirm
- The collection appears in your sidebar — expand it and select the request
- In the Body tab, update the placeholder values (
your-partner-id, etc.) with your actual credentials - Click Send
The collection uses Postman's GraphQL body type, which provides syntax highlighting and variable editing. Make sure your Postman version is 7.2+ for GraphQL support.
Success Response200
{
"data": {
"partnerServerAction": {
"success": true,
"statusCode": 200,
"message": "Server status changed from ACTIVE to INACTIVE",
"serverId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
}Error Responses
Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
success | Boolean | Required | true if the status was changed successfully. |
statusCode | Int | Required | HTTP-style status code. 200 = ok, 400 = bad request, 401 = unauthorized, 403 = ownership mismatch, 404 = not found, 500 = error. |
message | String | Required | A human-readable description of the result. |
serverId | String | Optional | The ID of the server that was updated. |