4.2 / 5 41 Ratings

CopyBet Sign Up Offer Guide

CopyBet currently has no welcome offer but they do: Daily Profit Boost up to 15%, and Acca Boost up to 100%

What OLBG Likes

  • Instant withdrawals
  • Overnight Best Odds Guaranteed on UK and Irish racing
Maximum Bonus:-
Offer type:New Accounts
Sport Betting Offer:Yes
SEE OFFER
Luke Bradshaw Lee
Luke Bradshaw Lee - Your Sports Betting Guide 👍

With hundreds of different betting sites, finding the best can be confusing. I'll guide you through and find the most suitable bookie for you.

What Are The Current COPYBET Welcome Offer Details?

Welcome to our guide on the CopyBet sign-up offer. Find comprehensive details on the current promo for new customers. Further insights into what they offer beyond the new customer deal are found in our complete CopyBet betting site review or explore all our free bet offers.

CopyBet Bonus Code

No promo code is required to claim the CopyBet offer at OLBG. Click the links on this page, register and follow the steps below.

Banking Options

Check Welcome Offer Payment Methods

Please check the terms and conditions on the day of registration to ensure you use the correct deposit method to qualify for any offer.

These are all the payment methods available for CopyBet. Be aware that in some cases, qualification for the welcome offer will depend on the payment method used. While we try to keep this information up to date in the full offer details below, make sure you check the full terms and conditions on the registration day.

MethodMinProcessing TimeFee
£10Instant
£10Instant
£10Instant
£10Instant

CopyBet Key Features

  • Best Odds Guaranteed
  • Live Stream
  • Asian handicap
  • Bet Builder
  • Acca Insurance
  • Early pay out
  • Welcome / sign-up offer
  • Odds Boosts
  • In-play
  • Cash Out
  • Partial Cash Out
  • Free Bet Club (or similar)
  • Exchange betting
  • Spread betting
  • In-game statistics
  • Pre-match form/statistics
  • Request a bet (or similar)
  • Virtual sports
  • App

CopyBet Customer Service

  • Web chat
  • Social media

One thing that should always be considered is that the welcome offer for any betting site lasts for just a moment when you join. Your main consideration should be whether that betting site is right for you and what your betting needs are in the long term.

There are plenty of promotions going on across the majority of sportsbooks and betting sites in the UK. Full a fun rundown on all the different ones available through OLBG, you can see the best betting sign up offers.

Alternative Welcome Offers to Compare with CopyBet

You might consider these if you are looking for the best welcome offers. But we suggest reading the full reviews to see if the site suits you.

BookmakerTotal ValueExpiryMin Deposit
Unibet£407 Days£5
talkSPORT BET£407 Days£10
BetMGM£407 Days£5
BetVictor£457 Days£5
Betano£405 Days£10

More CopyBet promotions

Once you have registered and claimed the welcome offer, you will find a host of promotions for existing customers to use. These range from football, horse racing and other sports promotions.

SectionOffer

⚽️🏀🏈🎾 Sports

Bet Builder

⚽️🏀🏈🎾 Sports

Weekly Challenge to earn free bets

⚽️🏀🏈🎾 Sports

Cash Out

⚽️🏀🏈🎾 Sports

Acca Booster

⚽️🏀🏈🎾 Sports

Prediction Challenge: Earn free bets or football shirts
🏇Sports
Best Odds Guaranteed

🏇 Sports

Extra Places

Cheltenham Free Bets and Offers 2027

With the Cheltenham Festival the biggest week in racing, expect to see most bookies worth their salt running specific Cheltenham free bets and offers. There were some great ones last time around, and we'll keep you posted as and when they come through.

CopyBet Login and Registration Guide

You will first need to register an account before being able to claim the CopyBet welcome offer.

Register an Account

🖋️ How do you register at CopyBet?

Just follow this step-by-step guide to get started:

🔻From the Home page, click on Join in the top-right corner of the page

🔻Enter your Email and Password. Then, click Create Account

🔻Enter your Address, Mobile Number and Marketing preferences. Then, click Continue

🔻Set your Deposit Limits. Make sure to read the disclaimer thoroughly, then tick the checkbox and click Continue

🔻From here, you can either make your first Deposit, or click on the X if you’re not ready to Deposit yet.

CopyBet Sign Up Offer History

THESE OFFERS ARE EXPIRED AND NO LONGER AVAILABLE

The offers below are no longer available, we document for historical reason and for information

In this section, we record previous welcome offers available from CopyBet so we can see how they have changed and potentially predict what might happen in the future

Offer history

Expired atOffer
01.08.2025
Bet £20, Get £20 in Free Bets + up to 15% daily profit boost Expired

Full T&Cs apply. New UK customers only. The qualifying bet should be either a Single or Acca (2+ selections) bet, start at £20, have 1.9 or greater odds and must be settled within 7 days of opt-in. The Free bet include: 1 x £20 Free bet any Live or Pre-Match event. Max payout – £500. 7-day expiry. To unlock the offer, complete the first deposit via the banking app secured by Truelayer. Profit boost: One boost per day; claim required. 1 day to claim (by 23:59 UTC+3). Max stake £30. Single bets only. No Free Bets. Profit Boost valid for 24 hrs. Max payout £1,000. Credited within 24 hrs. 18+. BeGambleAware.com

08.01.2025
Bet £20, Get £60 in Free Bets + up to 15% Daily Profit Boost Expired

Full T&Cs apply. New UK customers only. The qualifying bet should be either a Single or Acca (2+ selections) bet, start at £20, have 1.9 or greater odds and must be settled within 7 days of opt-in. 3 Free bets include: 1 x £20 Free bet Racing (Horse Racing or Greyhound Racing); 1 x £20 Free Bet Live Football; 1 x £20 Free Bet Live. Max payout – £500. 7-day expiry. To unlock the offer, complete the first deposit via the banking app (Open banking). 18+. BeGambleAware.com

07.08.2024
Bet £10, Get £50 in Free Bets Expired

Full T&Cs apply. New UK customers only. The qualifying bet should be either a Single or Acca (2+ selections) bet, start at £10, have 1.9 or greater odds and must be settled within 7 days of sign-up. 5 Free bets which must be placed with a min odds of 2 include: 1 x £10 Free bet on any Pre-match Football game (single); 1 x £10 Free Bet for Horse Racing (single); 1 x £10 Free Bet for Acca (min 2 selections) Bet on any sport; 1 x £10 Free Bet for Acca (min 3 selections) Bet on any sport; 1 x £10 Free Bet for Acca (min 4 selections) Bet on any sport. Max payout – £500. 7 day expiry. To unlock the offer, complete the first deposit via the banking app (Open banking). 18+. BeGambleAware.com

April 2026


























Title






Content








Normal Paragraph FormatNormalHeading 1Heading 2Heading 3Heading 4CodeParagraph StyleGrayBorderedSpacedUppercaseQuoteIncreaseDecreaseBoldItalicAlignAlign LeftAlign CenterAlign RightAlign JustifyOrdered ListDefaultLower AlphaLower GreekLower RomanUpper AlphaUpper RomanUnordered ListDefaultCircleDiscSquareInsert TableInsert SnippetInsert LinkInsert ImageInsert VideoFullscreenCode ViewOLBG ImageInsert image from olbgimages.co.uk


class="modal fade component-backend-modal"
role="dialog"
aria-modal="true"
v-if="visible"
v-bind:aria-labelledby="ariaLabeledBy"
:style="containerStyle"
:class="containerCssClass"
@click="onOverlayClick"
>
ref="document"
role="document"
class="modal-dialog"
:class="cssClass"
>
ref="content"
class="modal-content"
:class="contentCssClassName"
:style="modalStyle"
@mousedown="onMouseDown"
@transitionend="onTransitionEnd"
>

























data-default-button-text="OK"

>

ref="modal"

:aria-labeled-by="modalTitleId"

:unique-key="uniqueKey"

:size="size"

:storePosition="false"

@hidden="onHidden"

>










data-default-button-text="OK"

>

ref="modal"

:aria-labeled-by="modalTitleId"

:unique-key="uniqueKey"

:size="size"

:storePosition="false"

@hidden="onHidden"

>












ref="modal"
:aria-labeled-by="modalTitleId"
:unique-key="uniqueKey"
:size="size"
:storePosition="false"
@hidden="onHidden"
>









class="component-backend-richeditor-document-connector flex-layout-column layout-absolute"

:class="cssClass"

data-configuration="{"lang":{"command_upload_from_computer":"Upload From Computer","browse":"Browse Media Library","by_url":"By URL","url_required":"The URL is required","url_validation":"URL must start with http:\/\/ or https:\/\/","add_image_title":"Insert Image","add_video_title":"Insert Video","add_audio_title":"Insert Audio","add_file_title":"Insert File","embedding_code":"Embedding Code","embedding_code_required":"The embedding code is required","invalid_embedding_code_title":"Invalid code","invalid_embedding_code_message":"Please enter valid HTML embedding code"},"vendorPath":"https:\/\/www.olbg.com\/modules\/backend\/vuecomponents\/richeditordocumentconnector\/assets\/vendor"}"

>














v-if="codeEditingMode"
ref="codeEditor"
container-css-class="fill-container"
:model-definitions="codeEditorModelDefinitions"
>






container-css-class="fill-container"

:built-in-mode="true"

:full-screen="fullScreen"

ref="document"

>


:elements="toolbarElements"
:disabled="readOnly"
@command="onToolbarCommand"
ref="toolbar"
>





:allow-resizing="showMargins"
:toolbar-container="toolbarExtensionPointProxy"
:external-toolbar-app-state="externalToolbarAppState"
:use-media-manager="useMediaManager"
:built-in-mode="true"
unique-key="html-editor-form-widget"
container-css-class="fill-container"
>
v-model="value"
:read-only="options.readOnly"
:use-line-breaks="options.useLineBreaks"
:full-page="fullPage"
:editor-options="editorOptions"
:toolbar-buttons="toolbarButtons"
ref="richeditor"
@blur="onBlur"
@focus="onFocus"
>









class="component-backend-document flex-layout-column"

:class="cssClass"

>


























v-if="processing"
indicator-style="stripe"
css-class="document-progress-indicator"
>





size="small"
>




















class="document-toolbar-element"
:class="['element-type-'+element.type, {'button-group': !!element.buttonGroup, 'button-icon-only': element.type == 'button' && !element.label}]">
v-if="element.type == 'button' || element.type == 'dropdown'"
:settings=element
:toolbar-disabled="disabled"
@dropdowncontentshown="onDropdownContentShown"
@dropdowncontenthidden="onDropdownContentHidden"
@command="onElementCommand"
>




class="document-toolbar-element"
:class="['element-type-'+element.type, {'button-group': !!element.buttonGroup, 'button-icon-only': element.type == 'button' && !element.label}]">
v-if="element.type == 'button' || element.type == 'dropdown'"
:settings=element
:toolbar-disabled="disabled"
@dropdowncontentshown="onDropdownContentShown"
@dropdowncontenthidden="onDropdownContentHidden"
@command="onElementCommand"
>





role="button"
v-if="settings.href"
v-bind:href="settings.href"
v-bind:target="settings.target ? settings.target : '_self'"
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:aria-controls="ariaControlsId"
v-bind:aria-haspopup="settings.type == 'dropdown'"
v-bind:id="buttonId"
v-bind:data-cmd="command"
v-bind:data-tooltip-text="tooltip"
v-bind:data-tooltip-hotkey="tooltipHotkey"
class="backend-toolbar-button"
:class="cssClass"
@click="onClick"
ref="button"
>



type="button"
v-else
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:aria-controls="ariaControlsId"
v-bind:aria-haspopup="settings.type == 'dropdown'"
v-bind:id="buttonId"
v-bind:data-cmd="command"
v-bind:data-tooltip-text="tooltip"
v-bind:data-tooltip-hotkey="tooltipHotkey"
class="backend-toolbar-button"
:class="cssClass"
@click="onClick"
ref="button"
>


>type="button"
v-if="settings.type != 'dropdown' && settings.menuitems"
class="backend-toolbar-button menu-trigger"
:class="menuTriggerCssClass"
aria-haspopup="true"
v-bind:disabled="settings.disabled || toolbarDisabled"
v-bind:tabindex="settings.disabled || toolbarDisabled ? -1 : 0"
v-bind:id="menuButtonId"
v-bind:aria-controls="menuId"
@click="onClick($event, false, true)"
ref="menuButton"
>



v-if="settings.menuitems"
:items=settings.menuitems
:menu-id="menuId"
:labeled-by-id="buttonId"
ref="menu"
@closedwithesc="onMenuClosedWithEsc"
@command="onMenuItemCommand"
@shown="onMenuShown"
@hidden="onMenuHidden"
@aligntotrigger="onAlignToTrigger"
>






v-if="documentIcon"
class="document-icon"
v-bind:style="documentIconStyle"
>








type="text"
class="header-subtitle flex-layout-item stretch"
v-model="data[subtitleProperty]"
v-bind:disabled="disabled"
@input="onSubtitleInput"
>


v-if="showCloseIcon"
class="close close-icon backend-icon-background-pseudo"
@click="$emit('documentcloseclick')"
>











ref="sheet"
:items="items"
:labeled-by-id="labeledById"
:menu-id="menuId"
:preferable-position="preferablePosition"
@aligntotrigger="$emit('aligntotrigger', $event)"
@command="$emit('command', $event)"
@hidden="onSheetHidden"
@closemenu="hideMenu"
>







class="item"

:class="{

separator: type == 'separator',

first: isFirst,

'submenu-expanded': isSubmenuExpanded

}"

v-bind:role="type == 'separator' ? 'separator' : 'presentation'"

v-bind:disabled="disabled"

>


ref="itemElement"

v-if="href && type != 'separator'"

v-bind:href="href"

v-bind:target="target ? target : '_self'"

v-bind:tabindex="disabled ? -1 : 0"

v-bind:disabled="disabled"

v-bind:aria-disabled="disabled"

v-bind:aria-checked="itemIsChecked ? 'true' : 'false'"

v-bind:role="itemRole"

:style="itemStyle"

@click="onClick($event)"

@mouseenter="onMouseEnter"

data-menuitem

>


class="backend-icon-background-pseudo"

v-if="type == 'checkbox' || type == 'radiobutton'"

>




v-if="hasSubmenu"

ref="submenu"

:items="items"

:labeled-by-id="menuItemId"

:menu-id="submenuId"

:is-submenu="true"

@command="$emit('command', $event)"

@hidden="onSubmenuHidden"

@closemenu="$emit('closemenu', $event)"

>






























class="component-backend-richeditor flex-layout-column"

:class="cssClass"

data-configuration="{"editorLang":null,"useMediaManager":true,"iframeStylesFile":"https:\/\/www.olbg.com\/modules\/backend\/vuecomponents\/richeditor\/assets\/css\/iframestyles.css","globalToolbarButtons":["paragraphFormat","paragraphStyle","quote","bold","italic","align","formatOL","formatUL","insertTable","insertSnippet","insertPageLink","insertImage","insertVideo","fullscreen","html","olbgImages"],"allowEmptyTags":null,"allowTags":null,"allowAttrs":null,"noWrapTags":null,"removeTags":null,"lineBreakerTags":null,"imageStyles":null,"linkStyles":null,"paragraphFormat":null,"paragraphStyles":null,"inlineStyles":null,"tableStyles":{"branded":"Add OLBG Branding","no-branding":"Remove OLBG Branding"},"tableCellStyles":null}"

>








class="component-backend-uploader"

v-show="!hidden"

:class="{'uploader-collapsed': collapsed}"

data-lang-uploading="Uploading Files"

data-lang-complete="Upload Complete"

>





indicator-style="bar"
:progress="totalProgress"
>

@click.prevent="onHeaderButtonClick"
type="button"
class="close backend-icon-background-pseudo"
:class="{'collapse': !collapsed && hasFilesInProgress, 'expand': collapsed && hasFilesInProgress}"
tabindex="0"
>




:relative-layout="true"
:relative-layout-max-height="200"
>


  • v-for="(file, index) in files"
    :key="file.key"
    :fileName="file.name"
    :status="file.status"
    :progress="file.progress"
    :errorMessage="file.errorMessage"
    @removeclick="onRemoveClick(index)"
    >













  • class="backend-icon-background"
    v-if="status == 'completed'"
    >

    v-if="status == 'uploading'"
    >
    indicator-style="bar"
    :progress="progress"
    >

    @click.prevent="$emit('removeclick')"
    type="button"
    class="close backend-icon-background-pseudo"
    tabindex="0"
    >





class="component-backend-scrollablepanel"

:class="{'scrollablepanel-relative': relativeLayout}"

>


class="scrollable"
ref="scrollable"
v-on:scroll.passive="onScroll"
:style="containerStyle"
>






ref="panel"

:controls="dataSchema"

:obj="liveObject"

:parent-obj="parentObject"

:inspector-unique-id="uniqueId"

:layout-update-data="layoutUpdateData"

:inspector-preferences="inspectorPreferences"

>




class="component-backend-inspector-panel"

data-validation-alert-title="Error"

>

:controls="untabbedControls"

:obj="obj"

:parent-obj="parentObj"

:splitter-data="splitterData"

:inspector-unique-id="inspectorUniqueId"

:depth="0"

:panel-update-data="panelUpdateData"

:layout-update-data="layoutUpdateData"

:inspector-preferences="inspectorPreferences"

>


v-show="tabs.length > 0"

ref="tabs"

:tabs="tabs"

:closeable="false"

:use-slots="true"

tabs-style="inspector"

@tabselected="onTabSelected"

>


:controls="tabbedControls[tabInfo.key]"
:obj="obj"
:parent-obj="parentObj"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="0"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
>






class="group-name inspector-padding-control-left inspector-padding-control-right"
:class="{expanded: expanded, collapsed: !expanded, loading: loading, 'has-errors': hasErrors, 'hide-bottom-border-collapsed': hideBottomBorder}"
@click.stop="onToggleGroup"
>

v-text="nameAndValue"
class="backend-icon-background-pseudo"
>

size="tiny"
>



v-show="expanded"

:controls="controls"

:obj="obj"

:parent-obj="parentObj"

:splitter-data="splitterData"

:depth="depth + 1"

:panel-update-data="panelUpdateData"

:inspector-preferences="inspectorPreferences"

:inspector-unique-id="inspectorUniqueId"

@inspectorcommand="$emit('inspectorcommand', $event)"

>







:controls="groupedControls.ungrouped"
:obj="obj"
:parent-obj="parentObj"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
>


v-for="(controls, groupName) in groupedControls"
v-if="groupName != 'ungrouped'"
:key="groupName"
:group-name="groupName"
:obj="obj"
:parent-obj="parentObj"
:controls="controls"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
>





v-for="control in controls"

:obj="obj"

:parent-obj="parentObj"

:key="control.property"

:control-host-unique-id="uniqueId"

:control="control"

:splitter-data="splitterData"

:depth="depth"

:panel-update-data="panelUpdateData"

:layout-update-data="layoutUpdateData"

:inspector-preferences="inspectorPreferences"

:inspector-unique-id="inspectorUniqueId"

:is-full-width="isFullWidthControl(control)"

@inspectorcommand="$emit('inspectorcommand', $event)"

>








class="inspector-padding-control-left"
v-text="control.title"
v-bind:for="controlEditorId"
:style="labelStyle"
@click.stop="onLabelClick"
>
v-if="control.description"
class="property-description backend-icon-background-pseudo"
v-bind:data-tooltip-text="control.description"
>






class="inspector-padding-control-left"
v-text="control.title"
v-bind:for="controlEditorId"
:style="labelStyle"
@click.stop="onLabelClick"
>
v-if="control.description"
class="inspector-padding-control-left full-width-property-description"
v-text="control.description"
:style="labelStyle"
>








v-if="control.type == 'string' || control.type == 'text'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:splitter-data="splitterData"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
>

v-if="control.type == 'dropdown'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
>

v-if="control.type == 'autocomplete'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
>

v-if="control.type == 'checkbox'"
:obj="obj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
>

v-if="control.type == 'table'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
ref="editor"
@hidebottomborder="bottomBorderHidden = true"
@hidefullwidthlabel="controlLabelHidden = true"
>

v-if="control.type == 'object'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
>

v-if="control.type == 'set'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
>

v-if="control.type == 'objectList'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
>

v-if="control.type == 'objectListRecords'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
@inspectorcommand="$emit('inspectorcommand', $event)"
>

v-if="control.type == 'dictionary'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:inspector-preferences="inspectorPreferences"
:splitter-data="splitterData"
:inspector-unique-id="inspectorUniqueId"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
ref="editor"
@hidefullwidthlabel="controlLabelHidden = true"
@hidebottomborder="bottomBorderHidden = true"
>

v-if="control.type == 'mediafinder'"
:obj="obj"
:parent-obj="parentObj"
:control="control"
:control-id="controlEditorId"
:splitter-data="splitterData"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="onEditorFocus"
@blur="onEditorBlur"
@invalid="onEditorInvalid"
@valid="onEditorValid"
>







v-if="control.type == 'string'"
class="inspector-control"
type="text"
ref="input"
v-bind:value="valueWithPreset"
v-bind:id="controlId"
v-bind:placeholder="control.placeholder"
v-bind:readonly="inspectorPreferences.readOnly"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
/>

v-if="control.type == 'text'"
class="component-backend-inspector-textinput inspector-control"
:class="cssClass"
ref="input"
v-bind:value="valueWithPreset"
v-bind:id="controlId"
v-bind:placeholder="control.placeholder"
v-bind:readonly="inspectorPreferences.readOnly"
@keydown.enter.stop
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
>

v-if="control.type == 'text'"
class="inspector-textarea-shadow inspector-control component-backend-inspector-textinput"
ref="textareaShadow"
v-text="valueWithPreset"
>






size="tiny"
>

v-if="!loadingDynamicOptions"
:options="options"
:id="controlId"
:placeholder="control.placeholder"
:tabindex="0"
:disabled="inspectorPreferences.readOnly"
:allow-empty="true"
track-by="code"
label="label"
ref="input"
v-model="selectedValue"
select-label=""
selected-label=""
deselect-label=""
@input="updateValue"
@open="onFocus"
@close="onBlur"
@hook:mounted="onDropdownMounted"
>
No options found




{{ props.option.label }}





{{ props.option.label }}







class="component-backend-inspector-checkbox"
>
tabindex="0"
@keydown="onLabelKeydown"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
>
type="checkbox"
ref="input"
value="1"
v-bind:checked="isChecked"
v-bind:id="controlId"
v-bind:readonly="inspectorPreferences.readOnly"
v-bind:disabled="inspectorPreferences.readOnly"
@input="updateValue"
/>





class="component-backend-inspector-table"

data-lang-add-item="Add item"

>


:columns="columns"

>



v-for="(row, index) in value"

:row="row"

:key="index"

:columns="columns"

:row-index="index"

:inspector-preferences="inspectorPreferences"

:table-configuration="tableConfiguration"

@removerow="onRemoveRowClick"

>











v-for="(column, index) in columns"

:key="index"

:column="column"

:column-index="index"

:column-width="columnWidth"

>
















v-for="(column, index) in columns"

:key="index"

:column="column"

:row="row"

:cell-index="index"

:inspector-preferences="inspectorPreferences"

:table-configuration="tableConfiguration"

:is-last-cell="index == columns.length-1"

@focus="onCellFocus"

@blur="onCellBlur"

@valid="onValid"

@invalid="onInvalid"

@removerow="$emit('removerow', rowIndex)"

>







v-if="column.type == 'string'"
:row="row"
:column="column"
:cell-index="cellIndex"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
@valid="$emit('valid', $event)"
@invalid="$emit('invalid', $event)"
>


v-if="column.type == 'dropdown'"
:row="row"
:column="column"
:cell-index="cellIndex"
:inspector-preferences="inspectorPreferences"
ref="editor"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
@valid="$emit('valid', $event)"
@invalid="$emit('invalid', $event)"
>







type="text"

class="inspector-table-control-text"

v-model="row[column.column]"

ref="input"

v-bind:readonly="inspectorPreferences.readOnly"

@focus="$emit('focus', $event)"

@blur="$emit('blur', $event)"

/>



v-bind:tabindex="containerTabIndex"

@focus="onContainerFocus"

class="inspector-table-dropdown-container"

>

:options="options"

:placeholder="column.placeholder"

:tabindex="0"

:disabled="inspectorPreferences.readOnly"

:allow-empty="true"

track-by="code"

label="label"

ref="editor"

v-model="selectedValue"

select-label=""

selected-label=""

deselect-label=""

@input="updateValue"

@open="onFocus"

@close="onBlur"

>

No options found








:group-name="control.title"
:obj="editedObject"
:controls="control.properties"
:splitter-data="splitterData"
:depth="depth"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
ref="group"
>





:group-name="control.title"
:obj="editedObject"
:controls="nestedControlProperties"
:splitter-data="splitterData"
:depth="depth"
:group-value="groupValue"
:panel-update-data="panelUpdateData"
:layout-update-data="layoutUpdateData"
:inspector-unique-id="inspectorUniqueId"
:inspector-preferences="inspectorPreferences"
:loading="loadingDynamicOptions"
ref="group"
>




data-lang-key-required="The Key field is required"

data-lang-value-required="The Value field is required"

>

:group-name="control.title"

:obj="editedObject"

:controls="nestedControlProperties"

:splitter-data="splitterData"

:depth="depth"

:panel-update-data="panelUpdateData"

:group-value="groupValue"

:layout-update-data="layoutUpdateData"

:inspector-unique-id="inspectorUniqueId"

:inspector-preferences="inspectorPreferences"

:hide-bottom-border="true"

ref="group"

>





data-lang-error="Error"

data-lang-prop-cant-be-empty="Property :property cannot be empty"

data-lang-key-value-exists="Value is already defined: :property_value"

>

:group-name="control.title"

:obj="editedObject"

:parent-obj="obj"

:controls="nestedControlProperties"

:splitter-data="splitterData"

:depth="depth"

:panel-update-data="panelUpdateData"

:layout-update-data="layoutUpdateData"

:inspector-unique-id="inspectorUniqueId"

:inspector-preferences="inspectorPreferences"

ref="group"

@inspectorcommand="onInspectorCommand"

>





class="component-backend-inspector-table"

data-lang-add-item="Add item"

>









:control="control"
:record="record"
:parent-obj="parentObj"
:obj="obj"
>









size="tiny"
>








size="tiny"
>

v-if="!loadingDynamicOptions"
ref="autocomplete"
:search="onSearch"
:getResultValue="getResultValue"
:placeholder="placeholder"
:defaultValue="initialValue"
:readonly="inspectorPreferences.readOnly"
v-bind:id="controlId"
@input="onInput"
@change="onChange"
@update="onUpdate"
@focus="onFocus"
@blur="onBlur"
>


  • {{ result.value }}






data-lang-error-not-image="The selected file is not an image"

data-lang-placeholder="Click to select a file"

class="inspector-control-clearable"

>

class="inspector-control clickable act-as-text-input"

:class="cssClass"

:tabindex="0"

@focus="onFocus"

@blur="onBlur"

ref="input"

v-text:value="displayedText"

v-bind:readonly="inspectorPreferences.readOnly"

@click.stop="onClick"

@keydown.stop="onKeyDown"

>






data-default-button-text="OK"

>

ref="modal"

:aria-labeled-by="modalTitleId"

:unique-key="uniqueId"

:size="size"

:store-position="true"

:resizable="resizableWidth ? 'horizontal' : false"

:resize-default-width="600"

:close-by-esc="!readOnly"

:modal-temporary-hidden="layoutUpdateData.modalTemporaryHidden"

@hidden="onHidden"

@resized="onResized"

@shown="onShown"

@enterkey="onEnterKey"

>










class="component-backend-splitter" :class="cssClass"

>



Left panel



class="flex-layout-item fix splitter-handle"

:class="{dragging: dragging}"

ref="handle"

@mousedown.stop="onHandleMouseDown"

>




Right panel





class="component-backend-tabs flex-layout-column"

:class="cssClass"

data-lang-close="Close Tab"

data-lang-close-all="Close All"

data-lang-close-others="Close Others"

data-lang-close-saved="Close Saved"

>




class="tablist flex-layout-row"
role="tablist"
ref="tabList"
v-bind:aria-label="ariaLabel"
@keydown="onKeyDown"
>
v-for="tab in tabs"
role="tab"
data-component-backend-tab
class="flex-layout-item"
:class="{
active: currentTabKey == tab.key,
stretch: tabsStyle == 'document',
fix: tabsStyle == 'form',
'has-icon': tab.icon || tab.fatalError,
'has-close-button': closeable
}"
v-bind:id="getTabId(tab, 'tab')"
v-bind:aria-controls="getTabId(tab, 'panel')"
v-bind:aria-selected="currentTabKey == tab.key ? 'true' : 'false'"
v-bind:tabindex="currentTabKey == tab.key ? 0 : -1"
v-bind:data-tooltip-text="getTooltipText(tab)"
@click.ignore="onClick(tab)"
@mouseup.middle="onMiddleClick(tab)"
@contextmenu.stop="onContextMenu($event, tab)"
>
class="tab-icon"
:class="{'tab-error': tab.fatalError}"
v-if="tab.icon"
aria-hidden="true"
>
class="tab-icon-background"
v-bind:style="getTabIconStyle(tab)"
>
:class="tab.icon.cssClass"
>







class="backend-icon-background-pseudo close-tab"
:class="{'has-changes': tab.hasChanges}"
v-bind:tabindex="currentTabKey == tab.key ? 0 : -1"
v-if="closeable"
role="button"
aria-hidden="true"
aria-label="Close Tab"
v-bind:title="closeTooltip ? '' : 'Close Tab'"
v-bind:data-tooltip-text="closeTooltip"
v-bind:data-tooltip-hotkey="closeTooltipHotkey"
@click.stop.prevent="onCloseClick(tab)"
>✕





class="backend-toolbar-button icon-only"
data-tooltip-text="Toggle Full Screen"
@click.stop.prevent="onToggleFullscreen"
>









v-for="tab in tabs"
role="tabpanel"
tabindex="0"
:key="getTabUniqueKey(tab)"
v-show="currentTabKey == tab.key"
v-bind:id="getTabId(tab, 'panel')"
v-bind:aria-labelledby="getTabId(tab, 'tab')"
class="tabpanel flex-layout-item stretch relative"
:class="tabPanelCssClass"
>
v-if="!useSlots"
:ref="getTabComponentRefName(tab)"
v-bind:is="tab.component"
:component-data="tab.componentData"
@tabfatalerror="onTabFatalError(tab)"
@tabkeychanged="onTabkeyChanged"
@tabclose="onHostedComponentTabClose(tab)"
>





:items="contextMenuItems"

:menu-id="contextMenuId"

:labeled-by-id="contextMenuLabeledById"

ref="contextmenu"

@command="onMenuItemCommand"

>










class="flex-layout-column component-backend-monaco-editor"

:class="cssClass"

data-configuration="{"vendorPath":"https:\/\/www.olbg.com\/modules\/backend\/vuecomponents\/monacoeditor\/assets\/vendor\/monaco","fontSize":"12px","tabSize":4,"useEmmet":true,"yamlSchemas":[{"uri":"https:\/\/www.olbg.com\/modules\/tailor\/assets\/js\/blueprint-yaml-schema.json","fileMatch":["*-blueprint.yaml"]}],"renderLineHighlight":"all","useTabStops":false,"renderIndentGuides":false,"renderWhitespace":"all","autoClosingBrackets":"languageDefined","autoClosingQuotes":"languageDefined","hover":{"delay":750},"wordWrap":"off","theme":"vs-dark"}"

>


:tabs="editorTabs"
:closeable="false"
:no-panes="true"
:container-css-class="tabsContainerCssClass"
:tooltips-enabled="false"
tabs-style="monaco-editor"
@tabselected="onTabSelected"
>




class="flex-layout-column fill-container"
:class="editorContainerCssClass"
ref="editorContainer"
@dragover.capture="onDragOver"
@drop.capture="onDragDrop"
>







In April, CopyBet removed thier welcome offer with OLBG.





May 2025

In May, CopyBet changed their welcome offer from Bet £20 get £60 offer, plus 15% profit boost daily. It became Bet £20, Get £20 in Free Bets, plus up to 15% daily profit boost.

April 2025

CopyBet changed their welcome offer to bet £20 get £60 offer. The free bets come in the form of three different £20 bets.

January 2025

At the beginning of 2025, CopyBet changed their welcome offer. It used to be bet £10 get £50 offer, with 5 x Free bets for Pre-Match Football and horse racing and 3 x Acca bets with 2, 3, and 4 selections, respectively.

FAQ

Bookie Review FAQs - CopyBet