vkcom/vk-api-schema

VK API JSON Schema

Installs: 665

Dependents: 6

Suggesters: 0

Security: 0

Stars: 207

Watchers: 32

Forks: 63

Open Issues: 44

Language:Shell


README

This repository contains JSON Schema documents explaining all the VK.COM API objects and methods mentioned here.

JSON Schema standard specifications and the most common usage scenarios could be found here: http://json-schema.org/

These schemes are compatible with JSON Schema version draft-07 and VK API version 5.199.

Packagist

Structure

Repository contains several .json files.

  • "methods.json" describes all of VK API methods (could be found at this page).
  • "objects.json" describes objects which are used in methods responses.
  • "responses.json" describes methods responses structure.
  • "errors.json" describes possible method errors.
  • "schema.json" describes additional keywords used in our implementation, such as "method", "error", "parameter" and others so to extend the canonical specification for our needs.

Samples

users.get method description:

{
      "name": "users.get",
      "description": "Returns detailed information on users.",
      "open": true,
      "parameters": [
        {
          "name": "user_ids",
          "description": "User IDs or screen names ('screen_name'). By default, current user ID.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 1000
        },
        {
          "name": "domains",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "name": "fields",
          "description": "Profile fields to return. Sample values: 'nickname', 'screen_name', 'sex', 'bdate' (birthdate), 'city', 'country', 'timezone', 'photo', 'photo_medium', 'photo_big', 'has_mobile', 'contacts', 'education', 'online', 'counters', 'relation', 'last_seen', 'activity', 'can_write_private_message', 'can_see_all_posts', 'can_post', 'universities';",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "name": "name_case",
          "description": "Case for declension of user name and surname:; 'nom' — nominative (default); 'gen' — genitive ; 'dat' — dative; 'acc' — accusative ; 'ins' — instrumental ; 'abl' — prepositional",
          "type": "string"
        }
      ],
      "responses": {
        "response": {
          "$ref": "responses.json#/definitions/users_get_response"
        }
      }
    }

market_market_album object description:

"market_market_album": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Market album ID",
          "minimum": 1
        },
        "owner_id": {
          "type": "integer",
          "description": "Market album owner's ID"
        },
        "title": {
          "type": "string",
          "description": "Market album title"
        },
        "count": {
          "type": "integer",
          "description": "Items number",
          "minimum": 0
        },
        "updated_time": {
          "type": "integer",
          "description": "Date when album has been updated last time in Unixtime",
          "minimum": 0
        },
        "photo": {
          "$ref": "#/definitions/photos_photo"
        }
      },
      "required": [
        "id",
        "owner_id",
        "title",
        "count",
        "updated_time"
      ]
    }