Integration

API PidMS

Use this endpoint to validate product keys with your reseller token. HydraCID X forwards the request to the PidMS service and returns the parsed result in string, json, or xml format.

PidMS flow
Main endpoint
GEThttps://bs.hydracidx.com/api/pidms/?key=AAAAA-BBBBB-CCCCC-DDDDD-EEEEF&timezone=UTC&format=string

Send a product key and choose the response shape with the `format` query parameter.

Powered by getcid.xyz
Integration options
  • This service is provided by getcid.xyz.
  • A WordPress plugin is also available for a simpler integration, as long as it connects directly to getcid.xyz.

Authorization

  • Authentication uses the same reseller static `url_token` as the other HydraCID X APIs.
  • Send the token in the `Authorization` header using the `Token` scheme.
  • This endpoint does not use reseller credits or background tasks.
Header example
Authorization: Token YOUR_STATIC_URL_TOKEN

How it works

  1. Send the product key with your reseller API token.
  2. The service parses the key and resolves its edition and validation status.
  3. Use `format=string`, `format=json`, or `format=xml` depending on your integration needs.
  4. You can optionally include `timezone` and `show_provider` to customize the response.

Request parameters

Use query parameters in a `GET` request.

Query string

key

string

Product key to validate in PidMS.

  • Required.
  • Use the full product key with dashes.
  • The response may report invalid format, invalid key, unsupported key, or a resolved result.

timezone

string

Timezone used to render the timestamp in the response.

  • Optional.
  • Default value: UTC.
  • Use an IANA timezone such as UTC or America/New_York.

show_provider

boolean-like

Controls whether the provider hint is appended for eligible responses.

  • Optional.
  • Default value: 1.
  • Accepts values like 1, 0, true, or false.

format

string

Controls the shape of the response body returned by the endpoint.

  • Optional.
  • Default value: string.
  • Supported values: string, json, xml.

Request examples

Ready to use
cURL
curl --request GET \
  --url "https://hydracidx.com/api/pidms/?key=AAAAA-BBBBB-CCCCC-DDDDD-EEEEF&timezone=UTC&format=json" \
  --header "Authorization: Token YOUR_STATIC_URL_TOKEN"

Successful responses

Choose the format that best fits your integration.

string

Key: AAAAA-BBBBB-CCCCC-DDDDD-EEEEF
Description: Office21_Access2021R_Retail
Edition: Access2021Retail
Error: Online Key
Time: 2026-04-29 12:34:56 +00:00

json

{
  "key": "AAAAA-BBBBB-CCCCC-DDDDD-EEEEF",
  "description": "Office21_Access2021R_Retail",
  "edition": "Access2021Retail",
  "error": "Online Key",
  "time": "2026-04-29 12:34:56 +00:00"
}

xml

<response>
  <key>AAAAA-BBBBB-CCCCC-DDDDD-EEEEF</key>
  <description>Office21_Access2021R_Retail</description>
  <edition>Access2021Retail</edition>
  <error>Online Key</error>
  <time>2026-04-29 12:34:56 +00:00</time>
</response>

Possible errors

Error examples are shown here only in JSON format.

Invalid format

{
  "key": "Invalid Format"
}
Causethe key does not match the required XXXXX-XXXXX-XXXXX-XXXXX-XXXXX pattern.What to dosend the full key again, preserving all dashes and characters.

Unsupported key

{
  "key": "Unsupported Key"
}
Causethe key was parsed but HydraCID X does not have configuration support for that product group yet.What to docontact support to request support for that key family.

External service error

{
  "key": "AAAAA-BBBBB-CCCCC-DDDDD-EEEEF",
  "description": "Office21_Access2021R_Retail",
  "error": "External Service Error"
}
Causethe external validation service used by PidMS did not respond correctly or timed out.What to doretry after a short wait; if it persists, report it to support because the failure is upstream.

Internal tracking

  • Every accepted PidMS request is stored in HydraCID X through `PidMSAccess` and `PidMsLog`.
  • HydraCID X reseller users and GetCID users are both supported through dedicated authenticators.
  • The resulting key metadata is synced into the shared valid-key registry.

Important notes

  • This API is simpler than GetCID: it does not create reseller charges or async polling flows.
  • The response body depends on `format`: plain text, structured JSON, or XML.
  • `show_provider` only affects the extra provider hint when the underlying result qualifies for it.