Skip to content

POST /v1/pdapi/give

Deprecated

Deprecated legacy endpoint

This legacy reward endpoint is deprecated. Prefer the split reward endpoints: give progression, give items, give pals, give pal templates, and give Pal eggs.

Response schema

Response schema

This deprecated endpoint may not be present in current builds. When available, failures use the shared REST error envelope documented below; migrate to the split reward endpoints for endpoint-specific success behavior.

Error responses

This endpoint is deprecated and may not be present in current builds. When available, error bodies use the same REST error envelope as the current API.

HTTP Error code When it happens
401 INVALID_TOKEN The Authorization header is missing, malformed, or does not match a configured bearer token.
403 MISSING_PERMISSION The token is valid, but it does not include permission for this deprecated route.
400 INVALID_JSON A request body was supplied, but it could not be parsed as JSON.
400 REQUEST_FAILED The legacy reward operation failed while validating or applying the request.
500 REQUEST_TIMEOUT The internal game-thread callback did not complete within 5 seconds.

Examples

Grant EXP and items

POST /v1/pdapi/give
{
    "UserID": "steam_76561198012345678",
    "EXP": 25000,
    "Items": [
        { "ItemID": "Money", "Count": 10000 }
    ]
}

Grant Pals and eggs

POST /v1/pdapi/give
{
    "UserID": "ps5_0f4b8c2d91aa34ef",
    "Pals": [
        { "PalID": "Pengullet", "Level": 10 }
    ],
    "PalEggs": [
        { "EggID": "PalEgg_Fire_01", "PalID": "Foxparks", "Level": 12 }
    ]
}
POST /v1/pdapi/give โ€” Grant EXP / items / pals / eggs (atomic)

POST /v1/pdapi/give

What it does

Grants rewards to a target player in a single server-side transaction-like operation:

  • EXP and/or
  • items and/or
  • pals and/or
  • eggs depending on the request body.

Core behavior

This endpoint is intended to behave atomically:

  • either everything is granted
  • or nothing is granted

If any part fails (invalid input, missing inventory space, invalid IDs, etc.), the server should reject the request and not partially apply it.

Why this matters

Admin tooling must not accidentally:

  • give EXP but not items
  • give some items but fail on later items
  • spawn pals without placing items

Atomic behavior avoids messy states and โ€œsupport tickets from hellโ€.

What it can grant

Depending on your implementation, the request may include:

  • EXP โ€” adds experience
  • Relics โ€” adds relic points keyed by relic type
  • TechnologyPoints โ€” adds tech points
  • AncientTechnologyPoints โ€” adds ancient tech points
  • UnlockTechnology / Techs[] โ€” learn technologies
  • Items[] โ€” give one or more items with counts
  • Pals[] โ€” give pals by ID + level
  • PalTemplates[] โ€” import pal templates by filename
  • PalEggs[] โ€” eggs by ID + pal ID / template, optionally with level

Error responses

This endpoint is deprecated and may not be present in current builds. When available, expect the same REST error envelope used by the current API: INVALID_TOKEN (401) for failed bearer authentication and MISSING_PERMISSION (403) when the token is authenticated but not allowed to call the route. Request validation failures are returned as JSON error objects; migrate to the split reward endpoints for endpoint-specific error codes.

Examples

{
    "UserID": "steam_76561198012345678",
    "EXP": 25000,
    "Items": [
        { "ItemID": "Money", "Count": 10000 }
    ]
}
{
    "UserID": "steam_76561198012345678",
    "Pals": [
        { "PalID": "Pengullet", "Level": 10 }
    ],
    "PalEggs": [
        { "EggID": "PalEgg_Fire_01", "PalID": "Foxparks", "Level": 12 }
    ]
}

Validation & common failure cases

Typical reasons admins hit errors:

  • Inventory space: not enough room for all items โ†’ fail the entire request
  • Invalid IDs: unknown ItemID, PalID, EggID, or missing template file โ†’ fail
  • Invalid values:
    • negative / zero counts (depending on rules)
    • invalid levels (too low/high, or non-numeric)
    • missing required fields (e.g., no UserID)
  • Player not found / not loaded:
    • user ID not known
    • player not currently online (depending on how your server handles offline grants)

Returns

Error count and error messages. If status is not 200, check Errors for how many errors occurred. Error contains the detailed list of what failed.