Create Element

Create element within specified event.

Create Element

POST https://environment.monterosa.cloud/api/v2/elements

Headers

NameTypeDescription

Authorization

string

Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb

Content-Type

string

application/vnd.api+json

Request Body

NameTypeDescription

content_type

string

Element content type.

duration

integer

Element duration in seconds. Required for elements with duration.

start_mode

string

Start mode. Possible values: "manual", "timecode".

offset

integer

Element offset from event start in seconds. Required only for the "timecode" start mode.

action

string

Action "publish" is allowed only.

question

object

Question (with options) for poll-like elements.

correct_option

integer

Number of correct option. Required only for prediction and trivia.

reveal_results_mode

string

Set when the results will be revealed to the client. Only for poll-like elements. Possible values: "vote", "close", "event_end", "never", "manual".

require_verified_user

boolean

Sets mode when only verified user can vote.

include_in_latest_results_feed

boolean

Include element results in latest results feed.

certification

boolean

Enables votes certification for poll-like elements.

max_votes_per_user

string

Maximum number of votes per user.

max_votes_per_option

integer

Maximum number of votes a user can cast per option.

min_options_per_vote

integer

Minimum options count allowed to vote.

max_options_per_vote

integer

Maximum options count allowed to vote.

reveal_answer_mode

string

Reveal answer mode for quiz elements. Possible values: "auto", "manual".

reveal_answer_in

integer

Answer reveal delay in seconds in auto mode for quiz elements.

fade

integer

A number of seconds between user's vote and when this vote will be faded out.

custom_fields

array

List of an element's custom fields. Each field is updated separately and if present its content is rewritten completely.

reveal_answer_on_vote

boolean

Enables reveal answer on vote for quiz elements.

Check below for requests and responses for different types of elements.

Example

Create a vote

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "6396746d-5b45-42b9-a364-35ad0cceffaa"
        }
      }
    },
    "attributes": {
      "content_type": "rpoll-custom",
      "start_mode": "manual",
      "duration": 45,
      "max_votes_per_user": 1,
      "min_options_per_vote": 1,
      "max_options_per_vote": 1,
      "custom_fields": [],
      "question": {
        "fields": [
          {
            "key": "text",
            "values": {
              "en": "Question Text"
            }
          },
          {
            "key": "image_url",
            "values": {
              "en": "https://example.com/image.jpg"
            }
          }
        ],
        "options": [
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "en": "Option Text #1"
                }
              },
              {
                "key": "image_url",
                "values": {
                  "en": "https://example.com/image.jpg"
                }
              }
            ]
          },
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "en": "Option Text #2"
                }
              },
              {
                "key": "image_url",
                "values": {
                  "en": "https://example.com/image.jpg"
                }
              }
            ]
          }
        ]
      }
    }
  }
}

Vote element is created here, as specified by rpoll-custom value for /data/attributes/content_type property. This value is specific for each app and it has to match the value specified in your app spec. The poll has a question and two options. The question and each of the options is made up of text and image fields. Duration is set to 45 seconds.

The vote is created in the event with id 6396746d-5b45-42b9-a364-35ad0cceffaa as set by /data/relationships/event/data/id.

Create a flexible prediction

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "6b98f449-77f5-4261-93ca-36bcbce81c71"
        }
      }
    },
    "attributes": {
      "content_type": "prediction-custom",
      "start_mode": "manual",
      "max_votes_per_user": 1,
      "min_options_per_vote": 1,
      "max_options_per_vote": 1,
      "custom_fields": [],
      "question": {
        "fields": [
          {
            "key": "text",
            "values": {
              "en": "Question Text"
            }
          },
          {
            "key": "image_url",
            "values": {
              "en": "https://example.com/image.jpg"
            }
          }
        ],
        "options": [
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "en": "Option Text #1"
                }
              },
              {
                "key": "image_url",
                "values": {
                  "en": "https://example.com/image.jpg"
                }
              }
            ]
          },
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "en": "Option Text #2"
                }
              },
              {
                "key": "image_url",
                "values": {
                  "en": "https://example.com/image.jpg"
                }
              }
            ]
          }
        ]
      }
    }
  }
}

Flexible prediction with a question with two options is created here.

Attribute "/data/attributes/content_type": "prediction-custom" is used to create a flexible prediction. This value is specific for each app and it has to match the value specified in your app spec.

Create a trivia element

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "74e23f8d-8ed6-4185-b061-12e1be071859"
        }
      }
    },
    "attributes": {
      "content_type": "trivia",
      "duration": 600,
      "start_mode": "manual",
      "question": {
        "fields": [
          {
            "key": "text",
            "values": {
              "all": "Which came first: the chicken or the egg?"
            }
          }
        ],
        "options": [
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "all": "The chicken"
                }
              }
            ]
          },
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "all": "The egg"
                }
              }
            ]
          }
        ]
      },
      "reveal_answer_mode": "auto",
      "reveal_answer_in": 15,
      "reveal_answer_on_vote": true,
      "correct_option": 2,
      "custom_fields": []
    }
  }
}

Trivia element is created here, with a question and two options. "correct_option" is provided with the second option value. And "reveal_answer_mode" is set to "auto". That means the correct option will be revealed automatically after 15 seconds from the element end as specified in the "reveal_answer_in" field.

Create a multi vote element

To enable multi-vote for an element, the element's spec must include multi_vote object.

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "5aaae08d-144c-4b5b-a872-283b30c8c679"
        }
      }
    },
    "attributes": {
      "content_type": "multi-vote",
      "duration": 600,
      "start_mode": "manual",
      "question": {
        "fields": [
          {
            "key": "text",
            "values": {
              "all": "What kind of pet would you like to have?"
            }
          }
        ],
        "options": [
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "all": "A dog"
                }
              }
            ]
          },
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "all": "A cat"
                }
              }
            ]
          },
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "all": "A hedgehog"
                }
              }
            ]
          },
          {
            "fields": [
              {
                "key": "text",
                "values": {
                  "all": "A turtle"
                }
              }
            ]
          }
        ]
      },
      "max_votes_per_user": 5,
      "max_votes_per_option": 4,
      "min_options_per_vote": 2,
      "max_options_per_vote": 3
    }
  }
}

Vote element is created here, with enabled and configured multi-vote feature.

Create a media element

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "32a9c9f2-3316-474d-8af5-94a5128849f9"
        }
      }
    },
    "attributes": {
      "content_type": "media",
      "start_mode": "manual",
      "max_votes_per_user": 1,
      "min_options_per_vote": 1,
      "max_options_per_vote": 1,
      "custom_fields": [
        {
          "key": "media_text",
          "values": {
            "en": "Media Text"
          }
        },
        {
          "key": "media_image",
          "values": {
            "en": "https://example.com/image.jpg"
          }
        }
      ]
    }
  }
}

Media element is created here, as specified by media value for /data/attributes/content_type property. This value is specific for each app and it has to match the value specified in your elements spec.

This media element has two custom fields: media_text and media_image.

The media is created in the event with ID 32a9c9f2-3316-474d-8af5-94a5128849f9 as provided by /data/relationships/event/data/id.

Create a poll

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "b9f62458-ff1f-4fce-9e7f-31c430c3dedd"
        }
      }
    },
    "attributes": {
      "content_type": "custom_poll",
      "start_mode": "manual",
      "offset": 0,
      "duration": 300,
      "certification": true,
      "require_verified_user": false,
      "reveal_results_mode": "event_end",
      "include_in_latest_results_feed": true,
      "max_votes_per_user": 1,
      "min_options_per_vote": 1,
      "max_options_per_vote": 1,
      "question": {
        "filter_keywords": ["#first_question"],
        "fields": [
          {
            "key": "text",
            "values": {
              "all": "Question 1"
            }
          },
          {
            "key": "image_url",
            "values": {
              "all": "//example.com/question.png"
            }
          }
        ],
        "options": [
          {
            "filter_keywords": ["#option1", "option1-best"],
            "fields": [
              {
                "key": "text",
                "values": {
                  "en": "Option 1",
                  "pl": null
                }
              },
              {
                "key": "image_url",
                "values": {
                  "all": "//example.com/img1.png"
                }
              }
            ]
          },
          {
            "filter_keywords": ["#option2"],
            "fields": [
              {
                "key": "text",
                "values": {
                  "en": null,
                  "pl": "Option 2"
                }
              },
              {
                "key": "image_url",
                "values": {
                  "all": "//example.com/img2.png"
                }
              }
            ]
          }
        ]
      },
      "custom_fields": [
        {
          "key": "public",
          "values": {
            "all": false
          }
        }
      ]
    }
  }
}

Create a data element

// POST /api/v2/elements
// Host: environment.monterosa.cloud
// Authorization: Bearer JmsmU5gZb6xNVUgQGoKcQLvQjRhKAUSb
// Content-Type: application/vnd.api+json

{
  "data": {
    "type": "elements",
    "relationships": {
      "event": {
        "data": {
          "type": "events",
          "id": "b9f62458-ff1f-4fce-9e7f-31c430c3dedd"
        }
      }
    },
    "attributes": {
      "content_type": "article",
      "offset": 120,
      "start_mode": "timecode",
      "custom_fields": [
        {
          "key": "title",
          "values": {
            "en": "Article Title"
          }
        },
        {
          "key": "author",
          "values": {
            "all": "John Smith"
          }
        },
        {
          "key": "public",
          "values": {
            "all": false
          }
        },
        {
          "key": "content_items",
          "items": [
            [
              {
                "key": "paragraph_type",
                "values": {
                  "all": "paragraph"
                }
              },
              {
                "key": "paragraph_text",
                "values": {
                  "all": "Lorem ipsum dolor sit amet"
                }
              }
            ],
            [
              {
                "key": "paragraph_type",
                "values": {
                  "all": "image"
                }
              },
              {
                "key": "paragraph_image",
                "values": {
                  "all": "https://example.com/articles/par1.jpg"
                }
              }
            ]
          ]
        }
      ]
    }
  }
}