SoulFire LogoSoulFire

Negotiate SDK connection

POST
/v1/sdk:handshake

Authorization

AuthorizationBearer <token>

Preferred API authentication. Use a JWT with the api audience.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Information supplied by an SDK while negotiating a connection.

sdkName*string
sdkVersion*string
minimumApiVersion*

A version of SoulFire's stable SDK protocol contract.

maximumApiVersion*

A version of SoulFire's stable SDK protocol contract.

requiredCapabilities?array<string>
requiredPlugins?array<>

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/sdk:handshake" \  -H "Content-Type: application/json" \  -d '{    "sdkName": "",    "sdkVersion": "",    "requiredCapabilities": [],    "requiredPlugins": []  }'
{  "serverId": "string",  "soulfireVersion": "string",  "commitHash": "string",  "branchName": "string",  "apiVersion": {    "major": 0,    "minor": 0,    "patch": 0  },  "nativeMinecraftVersion": "string",  "supportedMinecraftVersions": [    "string"  ],  "transports": [    "SDK_TRANSPORT_UNSPECIFIED"  ],  "capabilities": [    {      "id": "string",      "revision": 0    }  ],  "plugins": [    {      "pluginId": "string",      "pluginVersion": "string",      "description": "string",      "author": "string",      "license": "string",      "websiteUrl": "http://example.com",      "requiredSoulfireVersion": "string",      "apiMajorVersion": 0,      "descriptorSha256": "string",      "services": [        {          "name": "string",          "fullName": "string",          "methods": [            {              "name": "string",              "fullName": "string",              "inputTypeUrl": "string",              "outputTypeUrl": "string",              "clientStreaming": true,              "serverStreaming": true,              "permissions": [                "string"              ],              "displayName": "string",              "description": "string",              "exposedToMcp": true,              "mcpRequiresConfirmation": true            }          ]        }      ],      "permissions": [        {          "id": "string",          "pluginId": "string",          "scope": "PLUGIN_PERMISSION_SCOPE_UNSPECIFIED",          "risk": "PLUGIN_PERMISSION_RISK_UNSPECIFIED",          "displayName": "string",          "description": "string",          "defaultGrant": "PLUGIN_PERMISSION_DEFAULT_UNSPECIFIED"        }      ],      "eventTypeUrls": [        "string"      ],      "taskTypeUrls": [        "string"      ],      "stability": "PLUGIN_API_STABILITY_UNSPECIFIED",      "sdkPackages": {        "typescriptPackage": "string",        "pythonPackage": "string",        "mavenArtifact": "string"      },      "documentationUrl": "string",      "sourceUrl": "string",      "eventTypes": [        {          "typeUrl": "string",          "permissions": [            "string"          ]        }      ],      "taskTypes": [        {          "inputTypeUrl": "string",          "resultTypeUrl": "string",          "progressTypeUrl": "string",          "permissions": [            "string"          ]        }      ]    }  ],  "limits": [    {      "id": "string",      "value": "string"    }  ],  "identity": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "username": "string",    "email": "user@example.com",    "role": "ADMIN",    "grantedGlobalPermissions": [      "string"    ]  }}

How is this page?