7 min readJorgAI TeamNov 8, 2026

Schwab Developer Portal: How Individual Access Works, and the Rules That Trip Up First Apps

A developer's desk with a laptop showing code, for a guide to the Schwab Developer Portal

The Schwab Developer Portal at developer.schwab.com is where Schwab hands out access to its Trader API. There are two doors. An individual developer registers, creates an app, waits for a manual review, and then signs in to their own account through that app. A commercial app, which is what a platform like JorgAI is, goes through a longer review and then lets its members sign in with Schwab without registering anything themselves. This page is about the first door: what the registration asks for, what the two status labels mean, how long people wait, and the rules that trip up most first apps. For what the API itself can do in an account once you are in, see the Schwab Trader API explained.

The individual path in six steps

StepWhat you doWhat to know
1. RegisterCreate a developer account at developer.schwab.com with your email, then sign in to the developer site itselfThe developer login is separate from your brokerage login; the schwab-py guide warns to sign in to the developer site after creating the account
2. Pick the productOpen Trader API - Individual and request accessIndividual access is for trading your own Schwab brokerage account; it is not a reseller or multi-client licence
3. Create an appName it, describe it, set a callback URL, choose the API products, set an order limitCommunity guides add both Accounts and Trading Production and Market Data Production so one app covers orders and quotes
4. Wait for reviewThe app shows Approved - PendingDespite the word Approved, the app does not work yet; Schwab reviews each new app by hand
5. Ready For UseThe status changes and the app key and secret start workingPublished reports put the wait at a few days, with outliers in both directions (table below)
6. Sign inYour code opens Schwab's login page, you approve the app, Schwab redirects to your callback URL with a codeThe code is exchanged for an access token that lasts 30 minutes and a refresh token that lasts 7 days
The individual developer path on the Schwab Developer Portal, compiled from the portal's product pages, the schwab-py guides (read November 8, 2026) and JorgAI's own integration.

Approved - Pending is not approved

Every new app, and every edited app, sits in a state called Approved - Pending while Schwab reviews it. The schwab-py maintainers put it plainly: do not be fooled by the word Approved, the app is not ready. Keys from a pending app fail, which is the single most common reason a first script against the Schwab API does not work. The app is usable only when the status reads Ready For Use. The same guide notes that approval appears to be a manual process and that most users report reaching Ready For Use within a few days (source, read November 8, 2026).

How long the wait is depends on who you ask. These are the published reports we could verify, with their dates, so you can set expectations rather than refresh the page:

SourceReported waitWhen
schwab-py getting-started guideApproval can take up to a few days; most users within a few daysCurrent page, read November 8, 2026
schwab-py authentication guideEdits put the app back to Approved - Pending; re-approval typically takes a few daysCurrent page, read November 8, 2026
Community wrapper guides (schwabdev and others)One to two business days in the fastest reports2024 to 2026 guides, read November 8, 2026
Developer forum threadsSeveral hours to several days, with a few reports near a monthThreads from 2024 to mid-2026
JorgAI, commercial pathA review that asked for a screen recording of the entire member workflow before full sign-offOngoing in November 2026
Published Schwab app approval waits. None of these is an official Schwab commitment; the portal does not publish a service level.

Two practical consequences follow. First, create the app before you write the code, so the review runs while you build. Second, treat every edit to the app record as a resubmission: change the callback URL or the products and you may be back in the queue for days.

The app rules that catch first-time registrations

Callback URL: exact, HTTPS, and probably local

The callback URL you type into the app must match the one your code sends, character for character. The schwab-py guide recommends https://127.0.0.1:8182 with no trailing slash and warns that any deviation, including adding or removing a trailing slash, causes hard-to-debug failures. Its authentication flow only allows 127.0.0.1 as the host, because the library starts a tiny local web server on that port to catch Schwab's redirect (source). The same guide carries a notice dated July 21, 2024 that some users were refused when creating apps with callback URLs containing 127.0.0.1, or saw errors claiming a non-HTTPS URL when the URL was HTTPS; the maintainers direct affected users to Schwab's traderapi mailbox. A hosted service uses a public HTTPS callback on its own domain instead, which is how a member of a platform signs in from any device without running anything locally.

Order limit: 0 to 120 a minute, chosen at registration

When you create the app you set how many order-related requests it may send per minute, from zero to 120. Exceeding it gets the app throttled and the extra orders rejected. The community guides recommend setting 120. For a rules-based system that places a handful of orders a day the limit is never close, but a system that re-sends protective exits during a fast market should budget for it; how the exits behave when a connection drops covers that case.

Tokens: 30 minutes and 7 days

An access token lives for 30 minutes and a refresh token for seven days. After seven days the account holder has to sign in to Schwab again in a browser; no software can renew it unattended. JorgAI's Schwab connection refreshes access tokens on a 20-minute schedule and sends a reconnect reminder before the seventh day. The Trader API post has the detail on why Schwab chose the 7-day rule and what it means for a bot that runs while you are away.

No paper environment

Schwab does not offer a sandbox or paper account through the Trader API. The same base URL serves live accounts, and the account hash in each call decides which account is touched. Anyone testing an individual app is testing on real money from the first order, which argues for the smallest possible order sizes on day one, or for practising on software that has a simulator of its own.

Market data is a separate product

Quotes and price history come from the Market Data Production product, added to the same app. An app registered only for Accounts and Trading can place orders but cannot ask Schwab what the price is. JorgAI's connection takes a different route: orders go to Schwab, while decisions, exits and position values use a single market-data feed for every member, so a Schwab account and an Alpaca account are watched the same way.

Individual app, commercial app, or no app

There are three ways to end up with software trading a Schwab account, and the portal is only the front door to two of them.

  • Register your own individual app. You own the keys, you write or run the code, you handle the 30-minute refresh and the 7-day sign-in, and you sit in the approval queue after every edit. Libraries such as schwab-py do the OAuth dance for you on your own machine.
  • Sign in through a commercial app. A platform registers once with Schwab as a commercial developer, passes a fuller review, and then each member signs in to Schwab through the platform's hosted callback. The member never visits the developer portal. The 7-day re-authorization still applies to each member, because it is a property of the token, not of the app.
  • Use thinkorswim's own conditional orders. No API, no portal. Brackets, trailing stops and one-cancels-other orders live on Schwab's servers. There is no outside logic, but there is also nothing to approve. What thinkorswim can automate without an API covers the limits.

Where JorgAI fits

JorgAI is the second route. It is a registered Schwab Trader API application, so a member connects a Schwab brokerage account by signing in on Schwab's own page and approving the app; JorgAI never sees the password, holds no withdrawal permissions, and the member can revoke access from Schwab's side at any time. The member sets the rules (daily spend, size per trade, stop loss and profit target, whether every buy needs approval) and the software carries them out inside the account. The 7-day re-authorization applies and the portal shows a reconnect banner before it lapses. How fast Schwab API orders fill measures the round trip on 294 live orders, and the broker capability matrix lists what the Schwab connection supports next to the other brokers. If you want to see a rule run before you connect a live account, the free plan includes a simulator, and the Schwab page has the connection steps with screenshots.

Quick answers

Is the Schwab Developer Portal free for individuals?

The individual registration and the Trader API - Individual product carry no listed fee in the portal flow; the account you trade is a normal Schwab brokerage account with Schwab's usual commissions. Confirm on the portal when you register, because terms can change.

How long does Schwab take to approve an API app?

Published reports cluster at a few days, with fast cases of one to two business days and slow cases near a month. Schwab publishes no commitment. The status to wait for is Ready For Use, not Approved - Pending.

Why does my app say Approved - Pending?

That is the review state. Every new or edited app enters it, and keys do not work until the status changes to Ready For Use.

Does editing my app restart the review?

Yes. The schwab-py authentication guide notes that changes put the app back into Approved - Pending and that re-approval typically takes a few days. Get the callback URL and products right before you create the app.

Can I use my thinkorswim account through the API?

The Trader API works on Schwab brokerage accounts, which includes the accounts that thinkorswim displays; thinkorswim itself has no public API. The Trader API post has the history of what replaced the TD Ameritrade and thinkorswim developer programs.

Does the Schwab API have a sandbox?

No. There is no paper or test environment; the first order from a new app is a live order.

Do I need the developer portal to use JorgAI with Schwab?

No. JorgAI is the registered app; you sign in to Schwab from JorgAI and approve it. You never create an app or handle keys.

How we put this together. The step table and the approval reports come from the Schwab Developer Portal product pages (portal, Trader API - Individual) and the schwab-py getting started and authentication guides, all read on November 8, 2026; the portal itself blocks automated readers, so quoted phrasing is from the schwab-py pages. The token lifetimes, refresh schedule, missing paper environment and market-data routing are first-hand from JorgAI's Schwab adapter and refresh worker, read the same day. The commercial-review note is JorgAI's own experience in November 2026. Search volume for the title query is from Google Ads data through DataForSEO, November 8, 2026 (about 1,900 US searches a month).

To see a Schwab rule run in a simulator before you connect a live account, start on the free plan.

JorgAI is software that carries out the rules you set in your own brokerage account. It is not investment advice and does not predict or promise results. Trading involves risk of loss. Schwab, thinkorswim and TD Ameritrade are trademarks of The Charles Schwab Corporation; JorgAI is an independent application and is not affiliated with or endorsed by Schwab.

Let the AI do the trading.

Set it up in minutes. 7 day free trial on Starter, Plus and Pro.

Get started free

Get the weekly market read and new tools by email

One email a week: what moved, what the data says, and the next free tool when it ships. No spam, unsubscribe in one click.

More from the blog

Every other post, newest first

210 more posts

Stops, targets and a daily loss limit, enforced for you.

JorgAI runs the rules you set inside your own brokerage account. Zero withdrawal permissions, disconnect anytime.

Get Started

Showing 18 of 210. Keep scrolling.