News

.md

What scheduled releases and breaking headlines do to your traders' orders, where the news comes from, and how to post your own.

News in your admin sidebar holds five screens: News overview, News rules, News sources, Custom news and News flags. Together they decide which headlines your traders see and what happens to an order placed around one.

view_news opens all five. manage_news changes rules, switches sources and picks which rules act on each, skips single headlines, writes and withdraws custom news, and makes, rolls and revokes webhook keys.

How a headline becomes a window

Every headline has a start, a length and the currencies it moves. A rule turns it into a window: so many minutes before the start, so many after the end. Inside the window the rule either refuses an order before it executes or lets it through and logs it for review, and it can do that for opening, closing and modifying a position separately. News flags lists every order a rule refused or logged.

A rule only acts on the headlines it matches: the impact levels it names, the currencies it names (or all of them), and every source except the ones it leaves out.

A breaking headline from a news site, such as Yahoo Finance, is never matched. Its source states no impact, and the platform does not guess one for it, so it shows no impact level anywhere, to your team or your traders, and no rule acts on it. Your traders still see it among their headlines. Only a source that states its own impact (the economic calendar, and what you or your systems post) can trigger a rule.

News overview

News overview is a list of every headline from the sources you have on and from your own hand, one line per headline however many currencies it names, grouped by day. It opens on the next 7 days. The filter menu switches to the next 24 hours or 4 weeks, or the past 24 hours or 7 days, and narrows the list by impact, currency, source, what your rules do to a headline (blocks, flags only, no rule, skipped) and to the headlines that caught an order. Search finds a name, a currency code or the id of a headline. The line under the title counts what the list holds, names the next high impact release, counts the orders caught in the last 24 hours and warns when none of your rules is on.

Nothing opens until you pick a headline. It then slides in beside the list with an address of its own, so a link from News flags or the command palette lands on it. J and K walk the list and Escape closes the headline. A right click narrows the list to a currency, impact or source, searches for the name, skips the headline or lets your rules act on it again, and copies its name, id or link.

An open headline shows when it is and for how long, its impact and currencies, what printed against the forecast, what your rules do to it and what it caught. A breaking headline has no impact, and says that rules do not apply to it. Below that are three tabs:

  • Overview has the article behind a breaking headline, the window each rule holds around it with the exact times, and whether your rules act on it at all. A column beside it says in plain words what a trader gets: which order actions are blocked, from when to when. It warns when no rule covers a high impact headline. For a breaking headline it says once that no rule acts on it, with nothing to skip.
  • Rules holds every rule of yours against this headline in three groups: the ones that act on it, the ones that would if they were on, and the rest with the one thing that keeps each of them out (another impact, other currencies, a source it leaves out, or no order action to block). For a breaking headline it says once that no rule acts on it.
  • Caught lists the latest 50 orders blocked or flagged around it and the positions held through it, with the trader, the account, the symbol and the rule, and links to all of them in News flags.

Skipping a headline

A release moves, or you want your traders to trade through one headline, and no rule should change for that. Switch Let your rules act on it off on the Overview tab and save, or pick Skip for your rules from the menu, with a note for your team on why. From then on no news rule blocks or flags an order because of that headline, in the order engine and in the order ticket of the terminal. A currency you add to one of your own skipped headlines in Custom news is skipped with it. Traders still see it in their calendar. A position held through a breaking headline is still recorded, because no rule decides that.

You can let the rules act on it again until the last window around it has closed. After that the switch is locked, since it would no longer change anything, but the note can still be written. Every skip and every undo is in the activity log with who did it. Skipping needs manage_news.

A terminal that is already open

The order engine follows a skip at once. A trader whose terminal was already open picks it up the next time the terminal loads, the same as a changed rule, so until then their order ticket can still show the window as closed while the order would go through.

In the older designs

Propper - OG and Tactical keep the screen they had: one page with the table on the left and the open headline in a panel on the right, the period, impact, currency and source as controls above the table, and the open headline in ?selected=. Skipping a headline is only possible in the current design, but a skip applies in every design, because the order engine is the same.

News rules

News rules opens on a list of your rules across the whole width. A row says what the rule does (refuse orders or write them down), the impact and currencies it watches, its window and what it stops, how many headlines of the coming 7 days fall under it and when the next one is, how many orders it caught in the last 30 days and when it last did, and whether it is on. A rule that can never act, because no impact is picked or it stops nothing, carries a warning sign. The line under the title counts the rules, the ones that are on (a filter), the orders caught in the last 30 days (a link to News flags), and the challenge phases that trade through news (which opens the settings).

Search finds a name, a currency code or the id of a rule. The filter menu sorts by name, most caught, most headlines coming, widest window, caught most recently or newest, and narrows the list by state, what the rule does, impact, what it stops and currency. A right click switches a rule on or off, duplicates it, opens what it caught in News flags, copies its name, id or link, and deletes it.

Nothing opens until you pick a rule. It then slides in beside the list with an address of its own, so a link from the command palette or a colleague lands on it. J and K walk the list and Escape closes the rule. The head says whether the rule is on, what it does and when it last caught an order, with the switch to turn it on or off beside it. Under that are the facts: its window and what it stops, the impact and currencies it watches, the headlines coming, what it caught, and how many live accounts it holds, which is nobody while it is off. Four tabs follow:

  • Rule is the rule itself, saved with the save dock: the name, whether it is on, Refuse or Write down, which of opening a position, closing one and changing a stop loss or take profit it stops, the impact levels, currencies and sources that make a headline count, and the window in minutes before the start and after the end. A column beside it says in plain words what the rule does, gives the next headline with the exact window, counts the live accounts it holds, and warns about what cannot work as meant: a rule that catches nothing, one that overlaps another (where both match, the refusing one wins), one that also refuses closing so a trader cannot get out until the window ends, and live accounts on phases that trade through news.
  • Coming up lists the headlines of the coming 7 days the rule acts on as it is saved, by day, with the window around each in your own time. A headline that already started stays while the rule's window after it is open, marked as running now. Below them are the ones your team skipped on the News overview, which every rule leaves alone.
  • Caught counts the orders refused and written down in the last 30 days and in total, shows what the traders were doing (opening, closing, changing a stop loss or take profit, or holding a position through a headline), the traders it caught most in 90 days, and the latest 25, each linking to its entry in News flags.
  • Activity shows when the rule was made and every change saved to it, with who did it. It needs view_activity_logs.

New rule opens the form in the same place, from a starting point: two minutes around high impact, five minutes around high and medium, no new positions, watch only, or a blank rule. The sources a rule can leave out are the ones that state their own impact. Breaking headline feeds are not among them, since no rule acts on their headlines anyway. Duplicating a rule opens a copy that starts switched off, so it changes nothing until you switch it on. Nothing is saved until you create the rule.

Changing, adding and deleting rules needs manage_news. Without it the list, the tabs and the form are there to read, without a save dock.

Where the rules apply

Settings, the button beside the search and the filter menu, opens Where the rules apply: a switch per challenge phase, grouped by challenge, with the live accounts on each. A phase switched off trades straight through every news window, whatever the rules say. It is the News trading setting on the challenge the other way round, and your pricing table shows it to traders. A phase of a deleted challenge stays in the list while live accounts sit on it. The column beside it counts the live accounts the rules hold and the ones that trade through news, with your unsaved changes, and says how many accounts saving frees or holds. An account given without a challenge is always held. Changing it needs both manage_news and manage_challenges.

The order ticket does not know this setting yet

The order engine lets an order through on a phase that trades through news. The order ticket in the terminal does not check the phase, so a trader on such a phase still sees the window as closed in the ticket.

In the older designs

Propper - OG and Tactical keep the screen they had: one page with the rules in a table and the editor beside it, the counters above the table, and a new rule started from the preset cards. Coming up, Caught, Activity and Where the rules apply are only in the current design. A phase switched off there is the same switch the older designs show on the challenge, so it applies in every design.

Sources

News sources lists the sources Propper runs for every propfirm, across the whole width. ForexFactory and TradingView bring the scheduled economic calendar, Yahoo Finance brings breaking headlines, and Webhook is whatever your own systems post from Custom news. A source that is off disappears from your traders' calendar and chart, and no rule acts on what it sends. Switching one off changes nothing for other propfirms. Yahoo Finance states no impact for its headlines, so its row and its Source tab say that rules do not apply to it, whether it is on or off.

A row says what kind of source it is and how often Propper checks it, how many of your rules act on it and how many of those refuse orders, the headlines of the coming 7 days and how many of them are high impact, the headlines of the last 7 days and when the latest arrived, the orders its headlines caught in 30 days, and whether it is on. The line under the title counts the sources, the ones that are on (a filter) and the headlines coming, and warns when every source is off or a rule that is on hears no source at all. Search finds a name or a key. The filter menu sorts by Propper's order, name, most headlines coming, most headlines last week, most caught or most recently heard from, and narrows the list by state and kind. A right click switches a source on or off, shows its headlines on the News overview, opens Custom news for the webhook, and copies its name, key or link.

Nothing opens until you pick a source. It then slides in beside the list with an address of its own, so a link from Custom news, the command palette or a colleague lands on it. J and K walk the list and Escape closes it. The head says whether your firm takes the source, when it was last switched and by whom, and when its last headline arrived, with the switch to turn it on or off beside it. Under that are the facts: how often it is checked, the headlines coming and past, the rules acting on it and what it caught. Four tabs follow:

  • Source is saved with the save dock: whether your firm takes it, and a switch per news rule for whether that rule acts on its headlines. That second switch is the same setting as the sources on the rule itself, changed for this one source only, so a rule edited on News rules meanwhile keeps everything else. A column beside it says whether traders see the headlines, how many rules act on them and how many refuse orders, the next and the latest headline, and warns about what would not work as meant: a source that is off while rules act on it, one every rule leaves out, the webhook switched off, the last source that is on, and a source where nothing new arrived all week and nothing is scheduled for the next.
  • Headlines lists the coming 7 days and the last 7 days by day, up to 100 on each side, with their impact, currencies and length, and marks the ones your team skipped. A week with nothing scheduled names the next headline after it, since TradingView only fills the weeks after ForexFactory's. While the source is on each opens on the News overview.
  • Caught counts the orders its headlines caught in the last 30 days and in total, what each catch led to, which rules did the catching, and the latest 25, each linking to its entry in News flags.
  • Activity shows every time your team switched the source and every rule that started or stopped acting on it, with who did it. It needs view_activity_logs.

Request a source asks Propper for one it does not run yet. It opens a ticket in Platform support, where the answer arrives.

Switching sources and choosing which rules act on them needs manage_news. Without it the list, the tabs and the form are there to read, without a save dock.

In the older designs

Propper - OG and Tactical keep the screen they had: the sources in a list with a switch on each, and a panel beside it with what a source sent and which rules listen to it. Choosing which rules act on a source is only in the current design, and the older designs show the result on each rule. A source switched in one design is switched in all of them.

Custom news

Custom news is the news you write yourself, by hand on the screen or from your own systems through the webhook. It reaches your own traders only, and your rules act on it like on any other headline.

The screen opens on your headlines across the whole width, the latest start first and grouped by day, with withdrawn ones left out. A row shows when a headline starts and for how long, its title with its currencies and who wrote it (or the id your system posted it under), whether it is live, scheduled, ended or withdrawn, what your rules do with it, and how many orders it caught. A high impact headline that no rule acts on carries a warning. The line under the title counts the headlines and the ones live and scheduled, which are filters, says when you have a webhook key but headlines from the webhook do not reach your traders, and counts the posts the webhook refused in the last 24 hours, which opens its log.

Search finds a title, a currency, a headline's ID or the id your system posted it under. The filter menu sorts by start (latest or earliest first), by when a headline was written or by how much it caught, and narrows the list by status (withdrawn ones on request), impact, source and currency. A right click repeats a headline as a new one, ends a live one, opens it on News overview or what it caught on News flags, narrows the list to one of its currencies, its impact or its source, copies its title, ID, posted id or link, and withdraws it. Fifty headlines to a page.

Nothing opens until you pick a headline. It then slides in beside the list with an address of its own, so a link from News overview, the command palette or a colleague lands on it. J and K walk the list and Escape closes it. The head says where the headline stands and until when, who wrote it or which id it was posted under, and whether your rules skip it, with End now beside a live one and everything else in its menu. Under that are the facts: when and for how long, the impact, what your rules do with it, what it caught and who wrote it. Four tabs follow:

  • Headline is saved with the save dock: the title, impact, currencies, start and length while it is scheduled or live, and whether your rules act on it at all, with a note for your team on why not. Only what you changed is sent, so a headline your systems post again meanwhile keeps whatever you did not touch. A column beside it draws what traders see, lists the rules that act on it with the exact window each one holds, and warns about what will not work as written: no title or currency, a time that has passed or lies more than 90 days ahead, no rule acting on it, or a rule that blocks closing on a headline that starts right away.
  • Caught lists the orders your rules blocked or flagged around it and the positions held through it, the latest 50, with all of them on News flags.
  • Posts, on a headline from the webhook, lists what your systems posted under its id in the last 30 days and what each post got back, refused ones included, with the body that was sent, fifty to a page.
  • Activity shows who wrote, changed, ended, withdrew or skipped it. It needs view_activity_logs.

New headline opens the same form, empty, beside the list. A headline starts now or at a time up to 90 days ahead, in your own time zone, and lasts up to 24 hours. A headline that starts now lasts at least a minute, while a scheduled one may be a single moment of 0 minutes and your rules supply the window around it. Repeat as a new headline fills the form with the title, impact and currencies of another one, starting now.

One that has started keeps its start time, and one that has ended can no longer change, because what it blocked and flagged was judged against what it said at the time. Whether your rules act on it can still change until their last window around it closes. End now asks first, then stops a live headline early and keeps it in the history. Withdraw asks first, then takes it off every screen and out of every rule, while the trades it already caught stay on record. A withdrawn headline can still be opened, to read.

Writing, ending, withdrawing and skipping need manage_news. Without it the list and the tabs are there to read, without a save dock.

Webhook settings

Settings in the header of the list opens the webhook beside it, at an address of its own. It has three tabs:

  • Setup is saved with the save dock, all at once: whether headlines from the webhook reach your traders, which is the same switch as Webhook on News sources, and your keys, each with a name and an allowlist. Add key adds a row, and saving makes the key and shows its secret once. A column beside it says whether headlines get through, how many keys there are and how many of them accept any address, how many posts were taken and refused in the last 24 hours and when the last one arrived. It warns when the webhook is off, has no key, has a key without an allowlist, or refused posts.
  • Log lists what your systems posted in the last 30 days, newest first and fifty to a page, or only the refused posts, each with its key, the address it came from, the answer and the body that was sent. Search finds the id your system sent, an error code, an address, or a key by its ID or name. A post that made or changed a headline links to it.
  • Reference has the headers and fields, a curl with your own address to post a headline and one to withdraw it, and every answer with its code.

Roll secret on a key gives it a new secret, shown once. The old secret can stop at once or keep working for an hour, a day or a week while your systems switch over. Revoke asks first and refuses every post with that key from the next request on. The headlines it posted stay.

A post is kept only when it names one of your keys, revoked ones included, and never with its secret or headers. Anything else that reaches the address is not kept, nor is a post the rate limit refused before the webhook read it.

In the older designs

Propper - OG and Tactical keep the screen they had: the list with counters above it, the editor in a panel beside it, and the webhook in a panel of its own with the keys in a table, made and edited in a dialog. Rolling a secret, the log of posts and the Posts tab are only in the current design. A headline or a key changed in one design is changed in all of them.

News flags

News flags is the record of what your rules did. Every row is one of three:

OutcomeWhat happened
RefusedThe order was refused before it executed, and the trader was told why and until when.
Written downThe order went through and was written down for your team to review.
MarkedA position was open when a breaking headline went live, one of your own or one the platform posted. Nothing was refused: it is on record for a payout review.

The screen opens on every flag across the whole width, newest first, fifty to a page. A row shows the trader and the account, the symbol and what the trader was doing (opening, closing, changing a stop loss or take profit, or holding a position), the outcome and how long before or after the headline it happened, the headline with its impact and currency, the rule, and when. The line under the title counts the flags, those of the last 24 hours and the orders refused in the last 30 days (both filters), and the traders caught in 30 days.

Search finds a trader's name or email, an account number, a headline, a symbol, the ticket of a position or order, the words the trader was told, and any ID: of the flag, the trader, the account, the headline, the rule, the position or the order. The filter menu sorts newest or oldest first and narrows the list by period (24 hours, 7, 30 or 90 days, or two dates in your firm's time zone), outcome, what the trader was doing, the headline's impact and the rule, including what rules deleted since caught. A link from a rule or a headline lands on the list narrowed to it, and the line under the header says so. A right click opens the flag, the trader, the account, the headline on News overview or the rule, narrows the list to that trader, account, headline or rule, and copies what the trader was told, the flag's ID or its link.

Export downloads the list as it stands, every page of it, as a CSV: the same search and filters, one line per flag with its IDs, the trader, the account, the headline, the rule and the reason.

Nothing opens until you pick a flag. It then slides in beside the list with an address of its own, so a link from a rule, a headline, a source or a colleague lands on it. J and K walk the list and Escape closes it. The head says what the rule did, to which symbol and which kind of order, and when against the headline, with the trader one click away. Under that are the facts: when, the trader, the account with its phase and status, the headline and the rule. Then, without tabs:

  • What the trader was told, or what happened for an order that went through: the sentence on record, what the trader was doing, the symbol and the exact moment.
  • The trade: the position the order became or the one that was held, with its ticket, side, size, open and close, stops and result, or the pending order with its status. A refused order never became a trade. An opening order the rule wrote down names no trade when the flag predates that link, or when another check stopped the order afterwards.
  • The headline: impact, currency and country, source, start and length, whether it was withdrawn since, and how many flags it caught at your firm. A breaking headline that caught an order before rules stopped acting on those headlines shows no impact.
  • The rule as it is now: whether it is on, what it does, its window, what it stops, which headlines count, and what it caught in 30 days. A held position has no rule behind it.
  • This trader: how often they were caught in 30 days and in all, with their last five other flags, each of which opens beside the list.

A flag is never edited or removed. It records what happened at the time, so it stays as it was when the rule is changed or deleted, the headline is withdrawn, or the trader is removed. view_news is enough to read all of it. Opening the trader or the account takes view_traders or view_accounts.

In the older designs

Propper - OG and Tactical keep the screen they had: the list with counters for the last 30 days, filters by action, period and rule, 25 to a page, and the flag in a panel beside it. The trade, the rule as it is now, the trader's other flags, the filters by order, impact, account and dates, and the export are only in the current design. A link to one flag opens their list on it.

Webhook

Your own systems can post headlines to your platform domain. They land in the Custom news list marked Webhook, and your rules act on them like on anything you write by hand.

POST/webhooks/news

The address is on your own domain, for example https://trade.yourfirm.com/webhooks/news. The domain is how the platform knows which propfirm is posting, and the key has to belong to that same propfirm: a key of one platform posted to another is refused as unknown.

Keys

Make a key under Custom news, behind Settings in the header of the list (in the older designs, in the Webhook panel). A key is two values, sent as two headers with every request:

HeaderValue
X-News-KeyThe public key, starting nk_. Shown on the screen.
X-News-SecretThe secret, starting nks_. Shown once, when the key is made or rolled.

A lost secret cannot be shown again. Roll the key for a new one, or revoke it and make another. After a roll the old secret keeps working for as long as you chose, up to a week, so a sender can switch over without a refused post in between. Give each system its own key, so rolling or revoking one does not stop the others.

Every post that names one of your keys is kept for 30 days in the log under Settings, with the answer it got, so a refused post can be read back without your developer digging through their own logs.

Each key can have an allowlist of IP addresses, CIDR ranges such as 203.0.113.0/24, and host names. A host name is looked up when a post comes in and the answer is kept for five minutes. A name that does not resolve matches nothing. An empty allowlist accepts any address.

Posting a headline

curl -X POST https://trade.yourfirm.com/webhooks/news \
  -H "Content-Type: application/json" \
  -H "X-News-Key: nk_ade1a2f0479538f1" \
  -H "X-News-Secret: $NEWS_SECRET" \
  -d '{
    "id": "fed-statement-2026-10-06",
    "title": "Fed emergency statement",
    "impact": "high",
    "currencies": ["USD"],
    "starts_at": "2026-10-06T18:00:00Z",
    "duration_minutes": 30
  }'
FieldRequiredMeaning
idyesYour own id for the headline. Letters, digits, dots, dashes and underscores, up to 100 characters.
titleyesWhat traders see, up to 160 characters.
impactyeslow, medium or high.
currenciesyesOne to 30 three letter codes, such as USD. Lowercase is accepted.
starts_atnoISO 8601. Up to 90 days ahead, or up to 15 minutes in the past for a sender that posts a moment late. Without a time zone it is read as UTC. Leave it out to start now.
duration_minutesyesHow long the headline stays live, 0 to 1440. A headline that starts now needs at least 1; a scheduled one may be 0, a single moment like a calendar release, and your rules supply the window around it.

A new id answers 201 Created:

{
  "data": {
    "id": "fed-statement-2026-10-06",
    "title": "Fed emergency statement",
    "impact": "high",
    "currencies": ["USD"],
    "starts_at": "2026-10-06T18:00:00Z",
    "ends_at": "2026-10-06T18:30:00Z",
    "duration_minutes": 30,
    "status": "scheduled"
  }
}

status is scheduled, live, ended or withdrawn.

Changing a headline

Post the same id again. The headline changes instead of a second one appearing, which is also what makes a retry safe. The answer is 200 OK with the headline as it is now.

A headline that has started keeps its start time, whatever starts_at says. Leave starts_at out to keep the start of a scheduled one. A changed list of currencies replaces the old one.

A change made by hand on Custom news stands until the next post under the same id, which overwrites it.

Withdrawing a headline

DELETE/webhooks/news/{id}
curl -X DELETE https://trade.yourfirm.com/webhooks/news/fed-statement-2026-10-06 \
  -H "X-News-Key: nk_ade1a2f0479538f1" \
  -H "X-News-Secret: $NEWS_SECRET"

Answers 200 OK with the headline and "status": "withdrawn". Withdrawing one that is already withdrawn answers the same, so a retry is safe. An id that was withdrawn cannot be posted again: use a new one.

Errors

Every refusal has the same shape:

{
  "error": {
    "type": "invalid_request_error",
    "code": "validation_failed",
    "message": "Each currency is a three letter code, such as USD.",
    "param": "currencies.0",
    "errors": {
      "currencies.0": ["Each currency is a three letter code, such as USD."]
    }
  }
}
StatuscodeWhat happened
401missing_credentialsX-News-Key or X-News-Secret is missing.
401invalid_credentialsThe key and secret do not match a key of the propfirm this domain belongs to.
401key_revokedThe key was revoked.
403address_not_allowedThe request came from an address that is not on the key's allowlist. The message names the address that was seen.
404unknown_domainThe domain is not a propfirm's platform domain.
404event_not_foundNothing was posted under this id. Withdraw only.
409event_endedThe headline under this id has already ended and can no longer change.
409event_withdrawnThe headline under this id was withdrawn. Post it under a new id.
422validation_failedA field is missing or wrong. param names the first one, errors lists all of them.
429rate_limitedMore than 120 requests a minute from one address to one domain. Wait for Retry-After.

A post is accepted while the Webhook source is switched off on News sources, but the headline stays hidden and no rule acts on it until the source is on again.