{"_id":"@allensarkisyan/schwab-td-ameritrade-api","_rev":"4-290c41709243748384dff7c8997c72c6","name":"@allensarkisyan/schwab-td-ameritrade-api","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"@allensarkisyan/schwab-td-ameritrade-api","version":"0.0.1","private":false,"type":"module","author":{"name":"Allen Sarkisyan"},"main":"./dist/cjs/td-api.js","module":"./dist/esm/td-api.js","types":"./index.d.ts","license":"MIT","homepage":"https://github.com/allensarkisyan/schwab-td-ameritrade-api","repository":{"type":"git","url":"git+https://github.com/allensarkisyan/schwab-td-ameritrade-api.git"},"bugs":{"url":"https://github.com/allensarkisyan/schwab-td-ameritrade-api/issues"},"description":"Charles Schwab / TD Ameritrade - JavaScript / TypeScript API Client Implementation","keywords":["Stocks","Trading","Options","Futures","Market Data","Financial Data","API Client","Fintech","TD Ameritrade","Charles Schwab"],"scripts":{"build:types":"tsc --declaration --project tsconfig.types.json","build:esm":"tsc --project tsconfig.json --module esnext --outDir ./dist/esm","build:cjs":"tsc --project tsconfig.json --module commonjs --outDir ./dist/cjs","build":"npm run build:types && npm run build:esm && npm run build:cjs && prettier ./index.d.ts --write && cd dist && prettier . --write && npm run prepare-types","prepare-types":"./scripts/prepare_types.sh","test":"jest --verbose --coverage"},"dependencies":{"zod":"3.22.2"},"devDependencies":{"@types/node":"20.6.0","jest":"29.7.0","prettier":"3.0.3","typescript":"5.2.2"},"prettier":{"semi":true,"trailingComma":"all","singleQuote":true,"printWidth":80,"tabWidth":2,"arrowParens":"always"},"engines":{"node":">=16.0.0"},"exports":{".":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-api.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-api.js"},"default":"./dist/esm/td-api.js"},"./td-utils":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-utils.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-utils.js"},"default":"./dist/esm/td-utils.js"}},"_id":"@allensarkisyan/schwab-td-ameritrade-api@0.0.1","gitHead":"04cab6b9112aed4c53f44c79c484dc0dc5035760","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"integrity":"sha512-zQBxHmywUCa9aP3cb46oo6lo9zUsLpCJz28xMmIg/UGd6kZDJLvX9UNSjCq/JLyfrT3Qvkp+QwcHBKhatDX+Hg==","shasum":"8491e988e77d9d90665ca645a96b2df931a0fdc1","tarball":"https://registry.npmjs.org/@allensarkisyan/schwab-td-ameritrade-api/-/schwab-td-ameritrade-api-0.0.1.tgz","fileCount":15,"unpackedSize":141904,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrZNXvUTKXKuAQz9zzJrsgE/3RrhENXn/NprBlNV5D0wIhAMqtLxtTz4MC5ZQMAwuAfQKkesxgHMjuNNmo8FQHxEkM"}]},"_npmUser":{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"},"directories":{},"maintainers":[{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/schwab-td-ameritrade-api_0.0.1_1695065927744_0.2609770448512072"},"_hasShrinkwrap":false},"0.0.2":{"name":"@allensarkisyan/schwab-td-ameritrade-api","version":"0.0.2","private":false,"type":"module","author":{"name":"Allen Sarkisyan"},"main":"./dist/cjs/td-api.js","module":"./dist/esm/td-api.js","types":"./index.d.ts","license":"MIT","homepage":"https://allensarkisyan.github.io/schwab-td-ameritrade-api/","repository":{"type":"git","url":"git+https://github.com/allensarkisyan/schwab-td-ameritrade-api.git"},"bugs":{"url":"https://github.com/allensarkisyan/schwab-td-ameritrade-api/issues"},"description":"Charles Schwab / TD Ameritrade - JavaScript / TypeScript API Client Implementation","keywords":["Stocks","Trading","Options","Futures","Market Data","Financial Data","API Client","Fintech","TD Ameritrade","Charles Schwab"],"scripts":{"build:types":"tsc --declaration --project tsconfig.types.json","build:esm":"tsc --project tsconfig.json --module esnext --outDir ./dist/esm","build:cjs":"tsc --project tsconfig.json --module commonjs --outDir ./dist/cjs","build":"npm run build:types && npm run build:esm && npm run build:cjs && prettier ./index.d.ts --write && cd dist && prettier . --write && npm run prepare-types","prepare-types":"./scripts/prepare_types.sh","test":"jest --verbose --coverage"},"dependencies":{"zod":"3.22.2"},"devDependencies":{"@types/node":"20.6.0","jest":"29.7.0","prettier":"3.0.3","typescript":"5.2.2"},"prettier":{"semi":true,"trailingComma":"all","singleQuote":true,"printWidth":80,"tabWidth":2,"arrowParens":"always"},"engines":{"node":">=16.0.0"},"exports":{".":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-api.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-api.js"},"default":"./dist/esm/td-api.js"},"./td-utils":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-utils.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-utils.js"},"default":"./dist/esm/td-utils.js"}},"_id":"@allensarkisyan/schwab-td-ameritrade-api@0.0.2","gitHead":"5fbb166888e1a2c898e5c2155778181551c531d2","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"integrity":"sha512-FNm/79qd9MYq7wa1uBNWJJs8xtt1L/r4T7RbJs+UWjbM++qQKKqFPmoUc6eO615cD0PznekGlP1J5kFQ12LPvw==","shasum":"c01b670fc92f479060637e6f22ccd4819e9434ac","tarball":"https://registry.npmjs.org/@allensarkisyan/schwab-td-ameritrade-api/-/schwab-td-ameritrade-api-0.0.2.tgz","fileCount":15,"unpackedSize":142116,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcN2KEED4JJ/0XSd/hjPJT06yjoPwjPTOudM55RLIJjAIhANgwW0Bh7xqpgCeFp1HzsK2sxqWC1NVyHGI1qRU+i5JH"}]},"_npmUser":{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"},"directories":{},"maintainers":[{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/schwab-td-ameritrade-api_0.0.2_1695067735734_0.29551915302196674"},"_hasShrinkwrap":false},"0.0.3":{"name":"@allensarkisyan/schwab-td-ameritrade-api","version":"0.0.3","private":false,"type":"module","author":{"name":"Allen Sarkisyan"},"main":"./dist/cjs/td-api.js","module":"./dist/esm/td-api.js","types":"./index.d.ts","license":"MIT","homepage":"https://allensarkisyan.github.io/schwab-td-ameritrade-api/","repository":{"type":"git","url":"git+https://github.com/allensarkisyan/schwab-td-ameritrade-api.git"},"bugs":{"url":"https://github.com/allensarkisyan/schwab-td-ameritrade-api/issues"},"description":"Charles Schwab / TD Ameritrade - JavaScript / TypeScript API Client Implementation","keywords":["TD Ameritrade","Charles Schwab","TypeScript","Stocks","Trading","Options","Futures","Market Data","Financial Data","API Client","Fintech"],"scripts":{"build:types":"tsc --declaration --project tsconfig.types.json","build:esm":"tsc --project tsconfig.json --module esnext --outDir ./dist/esm","build:cjs":"tsc --project tsconfig.json --module commonjs --outDir ./dist/cjs","build":"npm run build:types && npm run build:esm && npm run build:cjs && prettier ./index.d.ts --write && cd dist && prettier . --write && npm run prepare-types","prepare-types":"./scripts/prepare_types.sh","test":"jest --verbose --coverage"},"dependencies":{"zod":"3.22.2"},"devDependencies":{"@types/node":"20.6.0","jest":"29.7.0","prettier":"3.0.3","typescript":"5.2.2"},"prettier":{"semi":true,"trailingComma":"all","singleQuote":true,"printWidth":80,"tabWidth":2,"arrowParens":"always"},"engines":{"node":">=18.0.0"},"exports":{".":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-api.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-api.js"},"default":"./dist/esm/td-api.js"},"./td-utils":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-utils.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-utils.js"},"default":"./dist/esm/td-utils.js"}},"_id":"@allensarkisyan/schwab-td-ameritrade-api@0.0.3","gitHead":"6ec804eca9c4252ccb6df4fa4af4943d26426f18","_nodeVersion":"18.17.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-12eABOhOq4ShayaOibrMba9Mdvy682TbaIKqG+vcQ1DNk8bXOyFFou62b/RMVl6++AAzKIbLfK/56O+t8KGavw==","shasum":"d9aeb88bf111bad0e4c1f871447d5f3fb13cd788","tarball":"https://registry.npmjs.org/@allensarkisyan/schwab-td-ameritrade-api/-/schwab-td-ameritrade-api-0.0.3.tgz","fileCount":20,"unpackedSize":150350,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allensarkisyan%2fschwab-td-ameritrade-api@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs90KcAA0yKHQ0pN0n+Zpqv16+z4Ky3WJ5njX60OX8ZgIgAxEl8NUcGcwq3Vz26LiHZ6oJbskpOYf2s57wfVa4vbE="}]},"_npmUser":{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"},"directories":{},"maintainers":[{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/schwab-td-ameritrade-api_0.0.3_1695084807023_0.44635333149038803"},"_hasShrinkwrap":false},"0.0.4":{"name":"@allensarkisyan/schwab-td-ameritrade-api","version":"0.0.4","private":false,"type":"module","author":{"name":"Allen Sarkisyan"},"main":"./dist/cjs/td-api.js","module":"./dist/esm/td-api.js","types":"./index.d.ts","license":"MIT","homepage":"https://allensarkisyan.github.io/schwab-td-ameritrade-api/","repository":{"type":"git","url":"git+https://github.com/allensarkisyan/schwab-td-ameritrade-api.git"},"bugs":{"url":"https://github.com/allensarkisyan/schwab-td-ameritrade-api/issues"},"description":"Charles Schwab / TD Ameritrade - JavaScript / TypeScript API Client Implementation","keywords":["TD Ameritrade","Charles Schwab","TypeScript","Stocks","Trading","Options","Futures","Market Data","Financial Data","API Client","Fintech"],"scripts":{"build:types":"tsc --declaration --project tsconfig.types.json","build:esm":"tsc --project tsconfig.json --module esnext --outDir ./dist/esm","build:cjs":"tsc --project tsconfig.json --module commonjs --outDir ./dist/cjs","build":"npm run build:types && npm run build:esm && npm run build:cjs && prettier ./index.d.ts --write && cd dist && prettier . --write && npm run prepare-types","prepare-types":"./scripts/prepare_types.sh","test":"jest --coverage"},"dependencies":{"zod":"3.22.2"},"devDependencies":{"@types/node":"20.6.0","jest":"29.7.0","prettier":"3.0.3","typescript":"5.2.2"},"prettier":{"semi":true,"trailingComma":"all","singleQuote":true,"printWidth":80,"tabWidth":2,"arrowParens":"always"},"engines":{"node":">=18.0.0"},"exports":{".":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-api.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-api.js"},"default":"./dist/esm/td-api.js"},"./td-utils":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-utils.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-utils.js"},"default":"./dist/esm/td-utils.js"}},"_id":"@allensarkisyan/schwab-td-ameritrade-api@0.0.4","gitHead":"890bade423c094763bdbdf8124636df5066e2a00","_nodeVersion":"18.17.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-KsA40dZ8gmPXN1sERfejJK/9FMEU/RSdsoWJMhyTW5StcsT2sA7mjiXG1dlzAPdtwx/7LIOl3/kspZ4VlNNb1g==","shasum":"7c0eb157126dfadb6caa4f8e1662b32fdda579f1","tarball":"https://registry.npmjs.org/@allensarkisyan/schwab-td-ameritrade-api/-/schwab-td-ameritrade-api-0.0.4.tgz","fileCount":16,"unpackedSize":143217,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allensarkisyan%2fschwab-td-ameritrade-api@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4ELSu7yMBNI7PaxIu713EYSUZlkSVwFVN176HM/7IeAiAdS4JFGPeNQU3F14wEspTWf9QvuF4pdZcaxkuOmq7cUQ=="}]},"_npmUser":{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"},"directories":{},"maintainers":[{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/schwab-td-ameritrade-api_0.0.4_1695123059557_0.5421946057307965"},"_hasShrinkwrap":false},"1.0.0":{"name":"@allensarkisyan/schwab-td-ameritrade-api","version":"1.0.0","private":false,"type":"module","author":{"name":"Allen Sarkisyan"},"main":"./dist/cjs/td-api.js","module":"./dist/esm/td-api.js","types":"./index.d.ts","license":"MIT","homepage":"https://allensarkisyan.github.io/schwab-td-ameritrade-api/","repository":{"type":"git","url":"git+https://github.com/allensarkisyan/schwab-td-ameritrade-api.git"},"bugs":{"url":"https://github.com/allensarkisyan/schwab-td-ameritrade-api/issues"},"description":"Charles Schwab / TD Ameritrade - JavaScript / TypeScript API Client Implementation","keywords":["TD Ameritrade","Charles Schwab","TypeScript","Stocks","Trading","Options","Futures","Market Data","Financial Data","API Client","Fintech"],"scripts":{"build:types":"tsc --declaration --project tsconfig.types.json","build:esm":"tsc --project tsconfig.json --module esnext --outDir ./dist/esm","build:cjs":"tsc --project tsconfig.json --module commonjs --outDir ./dist/cjs","build":"npm run build:types && npm run build:esm && npm run build:cjs && prettier ./index.d.ts --write && cd dist && prettier . --write && npm run prepare-types","prepare-types":"./scripts/prepare_types.sh","test":"jest --coverage"},"dependencies":{"zod":"3.22.2"},"devDependencies":{"@types/node":"20.6.0","jest":"29.7.0","prettier":"3.0.3","typescript":"5.2.2"},"prettier":{"semi":true,"trailingComma":"all","singleQuote":true,"printWidth":80,"tabWidth":2,"arrowParens":"always"},"engines":{"node":">=18.0.0"},"exports":{".":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-api.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-api.js"},"default":"./dist/esm/td-api.js"},"./td-utils":{"require":{"types":"./dist/index.d.ts","default":"./dist/cjs/td-utils.js"},"import":{"types":"./dist/index.d.ts","default":"./dist/esm/td-utils.js"},"default":"./dist/esm/td-utils.js"}},"_id":"@allensarkisyan/schwab-td-ameritrade-api@1.0.0","gitHead":"68cf6989870325c4dffc33b2897a8b327f97de89","_nodeVersion":"18.17.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-Nn5ILNqPMSiT7HXbhGI15lv+67ZzeNfQMFbFVY0dtDeNwDz+JpwAc638oH+yvhFWp7lXUDpMwfw2r9kzRvy4ug==","shasum":"dc2e1a2930dae72d85f4799c5de9c7f510f3b84d","tarball":"https://registry.npmjs.org/@allensarkisyan/schwab-td-ameritrade-api/-/schwab-td-ameritrade-api-1.0.0.tgz","fileCount":18,"unpackedSize":156532,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@allensarkisyan%2fschwab-td-ameritrade-api@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDM18zBx38h11iIJ0Dn0Lg7TLvPGCFFHPpI4Av1gCr3WwIgWz6//kGKpd+c7jl8vMiLxif24sgp6Sgjn54dViL9VN8="}]},"_npmUser":{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"},"directories":{},"maintainers":[{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/schwab-td-ameritrade-api_1.0.0_1695274590523_0.6245850952979461"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-18T19:38:47.634Z","0.0.1":"2023-09-18T19:38:47.946Z","modified":"2023-09-21T05:36:31.519Z","0.0.2":"2023-09-18T20:08:55.934Z","0.0.3":"2023-09-19T00:53:27.307Z","0.0.4":"2023-09-19T11:30:59.758Z","1.0.0":"2023-09-21T05:36:30.785Z"},"maintainers":[{"name":"allensarkisyan","email":"allensarkisyan@gmail.com"}],"description":"Charles Schwab / TD Ameritrade - JavaScript / TypeScript API Client Implementation","homepage":"https://allensarkisyan.github.io/schwab-td-ameritrade-api/","keywords":["TD Ameritrade","Charles Schwab","TypeScript","Stocks","Trading","Options","Futures","Market Data","Financial Data","API Client","Fintech"],"repository":{"type":"git","url":"git+https://github.com/allensarkisyan/schwab-td-ameritrade-api.git"},"author":{"name":"Allen Sarkisyan"},"bugs":{"url":"https://github.com/allensarkisyan/schwab-td-ameritrade-api/issues"},"license":"MIT","readme":"# JavaScript / TypeScript TD Ameritrade API Client Implementation\n\n[![npm (scoped)](https://img.shields.io/npm/v/@allensarkisyan/schwab-td-ameritrade-api)](https://npmjs.com/@allensarkisyan/schwab-td-ameritrade-api)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE.md)\n![Last Commit](https://img.shields.io/github/last-commit/allensarkisyan/schwab-td-ameritrade-api)\n![CodeQL](https://github.com/allensarkisyan/schwab-td-ameritrade-api/workflows/CodeQL/badge.svg?branch=main)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/allensarkisyan/schwab-td-ameritrade-api/badge)](https://securityscorecards.dev/viewer/?uri=github.com/allensarkisyan/schwab-td-ameritrade-api)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7855/badge)](https://www.bestpractices.dev/projects/7855)\n![GitHub issues](https://img.shields.io/github/issues/allensarkisyan/schwab-td-ameritrade-api)\n![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/allensarkisyan/schwab-td-ameritrade-api/tests.yml?label=tests)\n[![codecov](https://codecov.io/gh/allensarkisyan/schwab-td-ameritrade-api/graph/badge.svg?token=CMZZBK817L)](https://codecov.io/gh/allensarkisyan/schwab-td-ameritrade-api)\n\n## Overview\n\nThis is an unofficial JavaScript/TypeScript client implementation for the Charles Schwab / TD Ameritrade API. It allows developers to interact with TD Ameritrade's services and access financial data programmatically. Please note that this implementation is not affiliated with or endorsed by Charles Schwab and/or TD Ameritrade.\n\n### WebSocket client / streaming functionality available with [@allensarkisyan/schwab-td-ameritrade-streamer](https://github.com/allensarkisyan/schwab-td-ameritrade-streamer)\n\n## Features\n\n- MIT Licensed: This project is fully open source and available under the MIT License.\n- Cross-Platform: It is designed to work in both Node.js and Browser environments.\n- Strongly Typed: The codebase is strongly typed using JSDoc annotations for enhanced code quality and autocompletion support in TypeScript.\n- Uses Zod: [Zod](https://github.com/colinhacks/zod) (for type safety / schema validation)\n- Implementation of Official API Endpoints: [Official TD Ameritrade API Documentation](https://developer.tdameritrade.com/apis)\n- Derived from proprietary & internally developed quantitative trading and research software.\n\n## Installation\n\nTo install and use this TD Ameritrade API client, you can add it to your project using npm or yarn:\n\n```bash\nnpm install @allensarkisyan/schwab-td-ameritrade-api\n```\n\n```bash\nyarn add @allensarkisyan/schwab-td-ameritrade-api\n```\n\n# Getting Started\nTo get started with this library, follow the documentation provided [here](https://allensarkisyan.github.io/schwab-td-ameritrade-api/getting-started) for detailed instructions on how to set up and use the client to access TD Ameritrade's API.\n\n# See [Examples](https://allensarkisyan.github.io/schwab-td-ameritrade-api/EXAMPLES)\n\n## Required Configuration Options / Environment Variables\n| Environment Variable | Option Name | Value |\n| ----------- | ----------- | ------------- |\n| TD_AMERITRADE_CLIENT_ID | clientId | YOUR_TD_AMERITRADE_APPLICATION_CLIENT_ID |\n| TD_AMERITRADE_CALLBACK_URL | callbackUrl | http://localhost:3000/tdcallback |\n\n\n## Import Module\n```javascript\n/** Using ECMAScript Modules */\nimport { TDAmeritradeAPI } from '@allensarkisyan/schwab-td-ameritrade-api';\n\n/** Using CommonJS */\nconst { TDAmeritradeAPI } = require('@allensarkisyan/schwab-td-ameritrade-api');\n```\n\n## API Client Initialization\n```javascript\n/** Create a new instance of TDAmeritradeAPI */\nconst tdApi = new TDAmeritradeAPI({\n  clientId: process.env.TD_AMERITRADE_CLIENT_ID,\n  callbackUrl: process.env.TD_AMERITRADE_CALLBACK_URL\n});\n```\n\n#### createTDAmeritradeAPIClient Factory\n```javascript\nimport { createTDAmeritradeAPIClient } from '@allensarkisyan/schwab-td-ameritrade-api';\n\nconst tdApi = createTDAmeritradeAPIClient({\n  clientId: process.env.TD_AMERITRADE_CLIENT_ID,\n  callbackUrl: process.env.TD_AMERITRADE_CALLBACK_URL\n});\n```\n\n## Authentication & Authorization\n```javascript\n// Step 1: Initiate Authentication request with TD Ameritrade's servers\n// Follow the instructions provided by Charles Schwab / TD Ameritrade.\n\n// Step 2: Get Authorization Response code from the query string to your redirect callback URL.\nconst searchParams = new URLSearchParams(window.location.search);\nconst authorizationResponseCode = searchParams.get('code');\n\n// Step 3: Authorize the API Client and retrieve an Access Token\nconst { data: authResponse } = await tdApi.authenticate(authorizationResponseCode);\n```\n\n## Setting Access Token Externally\n```javascript\nconst USER_ACCESS_TOKEN = authResponse?.access_token;\nconst REFRESH_TOKEN = authResponse?.refresh_token;\n\n// Set User Access Token externally \ntdApi.setUserAccessToken({\n  userAccessToken: USER_ACCESS_TOKEN,\n  accessTokenExpires: authResponse?.expires_in,\n  refreshToken: REFRESH_TOKEN,\n  refreshTokenExpires: authResponse?.refresh_token_expires_in,\n});\n```\n\n```mermaid\nsequenceDiagram\n    User->> Client Application: Initiate Authentication Request\n    Client Application--xTD Ameritrade: Authenticate with Credentials\n    TD Ameritrade--xClient Application: Responds with Authorization Code\n    %% Client Application--xUser: Success\n    Client Application-->>TD Ameritrade: Initiate API Authorization and Get Access Token\n    TD Ameritrade->>Client Application: Responds with Access Token\n    loop Loop Every 30 Minutes\n        Client Application-->Client Application: Check Access Token Status with TD Ameritrade...\n        alt is Access Token Valid\n            Client Application->>TD Ameritrade: Use Access Token\n        else is Access Token Expired\n            Client Application->>TD Ameritrade: Refresh Access Token\n        end\n    end\n    User->>TD Ameritrade: Make API Requests\n```\n\n## Available APIs\nNONE: :x:\n\nPARTIAL: :white_square_button:\n\nFULL: :heavy_check_mark:\n\n| APIs | AVAILABLE | IMPLEMENTATION |\n| ---------| ----------  | ------ |\n| Accounts & Trading | :heavy_check_mark: | :white_square_button: |\n| Authentication | :heavy_check_mark: | :heavy_check_mark: |\n| Instruments | :heavy_check_mark: | :white_square_button: |\n| Market Hours | :x: | :x: |\n| Movers | :heavy_check_mark: | :heavy_check_mark: |\n| Option Chains | :heavy_check_mark: | :heavy_check_mark: |\n| Price History | :heavy_check_mark: | :heavy_check_mark: |\n| Quotes | :heavy_check_mark: | :white_square_button: |\n| Transaction History | :heavy_check_mark: | :white_square_button: |\n| User Info & Preferences | :x: | :white_square_button: |\n| Watchlist | :heavy_check_mark: | :white_square_button: |\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.\n\nMIT License\n\nCopyright (c) 2023 Allen Sarkisyan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n## Contributing\nContributions are welcome! If you have suggestions, bug reports, or would like to contribute to this project,\nplease open an issue or submit a pull request.\n\n## Author\n\n[Allen Sarkisyan](https://github.com/allensarkisyan)\n\nCopyright (c) 2019 - 2023 Allen Sarkisyan. XT-TX. All Rights Reserved.","readmeFilename":"README.md"}