Import data options =================== There are multiple ways on how data can be imported to the RebelMouse platform. The most popular and fastest way is to provide us with data if a format described in this section. Here are base definitions: .. code:: json { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://rebelmouse.com/schemas/base.json", "definitions": { "tags": { "type": "array", "items": {"type": "string"}, "uniqueItems": true, "maxLength": 100 }, "authors": { "description": "List of authors slugs to be used as keys to describe a set of authors", "type": "array", "items": {"$ref": "base.json#/definitions/slug"}, "uniqueItems": true, "maxLength": 10 }, "sections": { "description": "List of sections defined by their full path. Use '/' for frontpage.", "type": "array", "items": {"$ref": "base.json#/definitions/full_path"}, "uniqueItems": true }, "timestamp": { "type": "string", "format": "date-time" }, "html": { "description": "HTML field", "type": "string" }, "full_path": { "description": "Absolute path part of the URL.", "type": "string", "format": "iri-reference" }, "slug": { "type": "string", "pattern": "[a-z0-9-]{2,100}" }, "metadata": { "description": "An object containing additional data that may be required for a model", "type": "object", "example": {"field_is_member": true} } } } Here are entities you need to consider: Assets / Images --------------- .. code:: json { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://rebelmouse.com/schemas/image.json", "title": "Image", "description": "Describes image object with related caption, credit and alt fields", "type": "object", "properties": { "url": { "type": "string", "description": "Full URL to image file", "format": "iri", "maxLength": 500 }, "caption": { "type": "string", "maxLength": 1000 }, "credit": { "type": "string", "maxLength": 1000 }, "alt": { "type": "string", "maxLength": 500 } }, "required": ["url"], "additionalProperties": false } Authors ------- .. code:: json { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://rebelmouse.com/schemas/author.json", "title": "Author", "description": "Describes author object with minimal set of fields", "type": "object", "properties": { "email": { "type": "string", "format": "email", "maxLength": 200 }, "display_name": { "type": "string", "maxLength": 100 }, "path": { "$ref": "base.json#/definitions/slug", "maxLength": 100 }, "first_name": { "type": "string", "default": "", "maxLength": 30 }, "last_name": { "type": "string", "default": "", "maxLength": 30 }, "logo": {"$ref": "image.json"}, "metadata": {"$ref": "base.json#/definitions/metadata"} }, "required": ["email", "display_name", "path"], "additionalProperties": false } Posts / Articles ---------------- .. code:: json { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://rebelmouse.com/schemas/post.json", "title": "Post", "description": "Describes basic post object", "type": "object", "properties": { "social_teaser": {"$ref": "image.json"}, "teaser": {"$ref": "image.json"}, "lead_image": {"$ref": "image.json"}, "authors": {"$ref": "base.json#/definitions/authors"}, "sections": {"$ref": "base.json#/definitions/sections"}, "primary_section": {"$ref": "base.json#/definitions/full_path"}, "tags": {"$ref": "base.json#/definitions/tags"}, "internal_tags": {"$ref": "base.json#/definitions/tags"}, "created_ts": {"$ref": "base.json#/definitions/timestamp"}, "scheduled_at": {"$ref": "base.json#/definitions/timestamp"}, "body": {"$ref": "base.json#/definitions/html"}, "brief": {"$ref": "base.json#/definitions/html"}, "basename": {"$ref": "base.json#/definitions/slug"}, "video": { "description": "Full URL to supported video", "type": "string", "format": "iri", "maxLength": 500 }, "status": {"enum": ["publish", "draft", "deleted"]}, "original_id": { "description": "Id of the original post. Useful for debugging purposes for ease search between original and imported posts", "type": "string" }, "headline": {"type": "string"}, "subheadline": {"type": "string"}, "frontpage_headline": {"type": "string"}, "page_title": {"type": "string"}, "layout_name": {"type": "string"}, "metadata": {"$ref": "base.json#/definitions/metadata"} "exclude_from_search_results": { "type": "boolean", "default": false } }, "required": ["headline", "basename", "created_ts", "status"], "additionalProperties": false } Sections / Categories --------------------- .. code:: json { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://rebelmouse.com/schemas/section.json", "title": "Section", "type": "object", "description": "Describes section object with basic fields", "properties": { "full_path": { "$ref": "base.json#/definitions/full_path", "description": "Full path part of the section. Slash is used when you want to describe a path to a nested section", "examples": ["news", "news/politics", "animals/cats"] }, "title": { "type": "string", "maxLength": 100 }, "status": { "enum": ["private", "public", "unlisted"] }, "about": { "$ref": "base.json#/definitions/html", "description:": "Short HTML description of the section", "maxLength": 1024 }, "tags": {"$ref": "base.json#/definitions/tags"} }, "required": ["full_path", "title", "status"], "additionalProperties": false }