diff --git a/docs.json b/docs.json index 8306c1d2f..71d9adb64 100644 --- a/docs.json +++ b/docs.json @@ -73,6 +73,7 @@ "expanded": true, "pages": [ "ecosystem/api/toncenter/get-api-key", + "ecosystem/api/toncenter/v2-authentication", { "group": "API v2", "openapi": { diff --git a/ecosystem/api/toncenter/v2-authentication.mdx b/ecosystem/api/toncenter/v2-authentication.mdx new file mode 100644 index 000000000..3c05d797a --- /dev/null +++ b/ecosystem/api/toncenter/v2-authentication.mdx @@ -0,0 +1,74 @@ +--- +title: "Authentication for API v2" +--- + +## Overview + +The API v2 requires an API key for all methods, including the JSON-RPC endpoint. +The key can be sent either in an HTTP header or as a query parameter. + +To obtain an API key, see the [TON Center API key guide](/ecosystem/api/toncenter/get-api-key). + +| Type | Location | Name | Required | +| ------- | -------- | ----------- | -------- | +| API key | Header | `X-API-Key` | Yes | +| API key | Query | `api_key` | Yes | + +Only one of these is needed per request. + +## REST endpoints authentication + +### Header authentication + +Send the API key in the `X-API-Key` header: + +```bash +curl "https:///api/v2/getMasterchainInfo" \ + -H "X-API-Key: " +``` + +**Definitions:** + +- `` - The base URL of the TON Center API instance (`toncenter.com` for example). +- `` - The API key obtained from the [TON Center bot](https://t.me/toncenter). + +### Query parameter authentication + +Pass the key as a query parameter named `api_key`: + +```bash +curl "https:///api/v2/getMasterchainInfo?api_key=" +``` + +Both forms are equivalent. + +## JSON-RPC endpoints authentication + +Endpoint: `POST /api/v2/jsonRPC` + +The same API key rules apply. Example using header authentication: + +```bash +curl "https:///api/v2/jsonRPC" \ + -H "Content-Type: application/json" \ + -H "X-API-Key: " \ + -d '{ + "jsonrpc": "2.0", + "id": 1, + "method": "getMasterchainInfo", + "params": {} + }' +``` + +Or using the query parameter: + +```bash +curl "https:///api/v2/jsonRPC?api_key=" \ + -H "Content-Type: application/json" \ + -d '{ + "jsonrpc": "2.0", + "id": 1, + "method": "getMasterchainInfo", + "params": {} + }' +```