### Installation and Setup for Byul AI PHP Client Source: https://docs.byul.ai/rest-api/examples/php This section outlines the steps to install the Byul AI PHP client and set up the environment. It includes running `composer install` to manage dependencies, setting the `BYUL_API_KEY` environment variable, and executing a basic usage example script. ```Shell # Install dependencies composer install # Set environment variable export BYUL_API_KEY=byul_api_key # Run the example php examples/basic_usage.php ``` -------------------------------- ### REST API Quickstart Source: https://docs.byul.ai/rest-api/overview This section provides a quickstart guide to making your first REST API requests to Byul.ai. It covers the basic setup and essential endpoints to get you started. ```APIDOC GET /v1/status - Returns the current status of the Byul.ai API. - Example: curl -X GET https://api.byul.ai/v1/status ``` -------------------------------- ### Environment Setup for Create React App Source: https://docs.byul.ai/rest-api/examples/react Instructions for setting up the environment for a Create React App project. This includes installing dependencies, creating a `.env.local` file with the API URL, and starting the development server. ```bash # Install dependencies npm install # Create .env.local file echo "REACT_APP_API_URL=http://localhost:3001" > .env.local # Start development server npm start ``` -------------------------------- ### Project Setup and Execution (macOS/Linux) Source: https://docs.byul.ai/rest-api/examples/python This snippet details the essential commands for setting up the Byul.ai project on macOS or Linux. It covers activating a virtual environment, installing project dependencies using pip, setting the BYUL_API_KEY environment variable, and running the main application script. ```bash source venv/bin/activate pip install -r requirements.txt export BYUL_API_KEY=byul_api_key python app.py ``` -------------------------------- ### Node.js Environment Setup Source: https://docs.byul.ai/websocket/examples/nodejs Provides the necessary `package.json` dependencies and commands to install them and run a Node.js application using the Byul AI WebSocket client. ```json { "name": "byul-websocket-client", "version": "1.0.0", "dependencies": { "socket.io-client": "^4.7.0", "express": "^4.18.0" } } ``` ```bash npm install BYUL_API_KEY=byul_api_key node app.js ``` -------------------------------- ### Environment Setup and Application Execution Source: https://docs.byul.ai/rest-api/examples/nodejs This snippet shows how to set the BYUL_API_KEY environment variable and start the application using npm. ```bash export BYUL_API_KEY=byul_api_key npm start ``` -------------------------------- ### Byul AI Python Environment Setup Source: https://docs.byul.ai/websocket/examples/python Specifies the Python dependencies required for Byul AI WebSocket integration and provides commands for installation and running the application. ```Text requirements.txt python-socketio[asyncio-client]>=5.8.0 flask>=2.3.0 aiohttp>=3.8.0 ``` ```Shell pip install -r requirements.txt BYUL_API_KEY=byul_api_key python app.py ``` -------------------------------- ### REST API Quickstart Source: https://docs.byul.ai/index Get started with integrating the HTTP-based REST API for flexible news data access. ```APIDOC REST API HTTP-based API for flexible news data access ``` -------------------------------- ### Installation and Run Commands (npm) Source: https://docs.byul.ai/rest-api/examples/nodejs Basic npm commands for setting up and running a Node.js project. 'npm install' is used to download and install all the project's dependencies as listed in the package.json file. ```bash # Install dependencies npm install ``` -------------------------------- ### Example WebSocket Output Source: https://docs.byul.ai/websocket/quickstart This is an example of the output you can expect after successfully connecting to the Byul WebSocket. It includes connection status, authentication confirmation, and sample news data. ```text Connecting to Byul WebSocket... Connected to Byul WebSocket! Authenticated successfully: pro Breaking: Fed Issues Emergency Statement Importance: 10/10 Category: fed ``` -------------------------------- ### Install Socket.IO Client (Node.js) Source: https://docs.byul.ai/websocket/quickstart Installs the necessary client library for connecting to the WebSocket server using Node.js. ```javascript npm install socket.io-client ``` -------------------------------- ### Make First Request with cURL Source: https://docs.byul.ai/rest-api/quickstart Example of making a GET request to the Byul API to fetch news articles. It demonstrates how to include API key and query parameters for filtering. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=10&minImportance=7" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Install socket.io-client Source: https://docs.byul.ai/websocket/examples/react Installs the necessary client library for establishing WebSocket connections using socket.io. ```bash npm install socket.io-client ``` -------------------------------- ### Python Virtual Environment Setup Source: https://docs.byul.ai/rest-api/examples/python Provides commands for creating and activating a Python virtual environment. This is a standard practice for isolating project dependencies and ensuring a clean development setup. ```bash # Create virtual environment python -m venv venv # Activate virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate ``` -------------------------------- ### Make First Request with cURL Source: https://docs.byul.ai/rest-api/rate-limits Example of making a GET request to the Byul API to fetch news articles. It demonstrates how to include API key and query parameters for filtering. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=10&minImportance=7" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Install WebSocket Testing Tools Source: https://docs.byul.ai/websocket/examples/curl Provides instructions to install `websocat` and `wscat`, command-line tools for testing WebSocket connections. It includes commands to download and make `websocat` executable, and to install `wscat` globally using npm. ```shell # Install websocat (WebSocket client) curl -L https://github.com/vi/websocat/releases/download/v1.11.0/websocat.x86_64-unknown-linux-musl \ -o websocat && chmod +x websocat # Test with websocat echo '{"type":"auth","apiKey":"byul_api_key"}' | \ ./websocat wss://api.byul.ai/news-v2 # Install wscat (Node.js WebSocket client) npm install -g wscat ``` -------------------------------- ### Environment Setup for Next.js Source: https://docs.byul.ai/rest-api/examples/react Instructions for setting up the environment for a Next.js project. This involves creating a `.env.local` file to store the Byul.ai API key and the frontend API URL, and then starting the development server. ```bash # Create .env.local file echo "BYUL_API_KEY=byul_api_key" > .env.local echo "NEXT_PUBLIC_API_URL=http://localhost:3000" >> .env.local # Start development server npm run dev ``` -------------------------------- ### Make First Request with cURL Source: https://docs.byul.ai/rest-api/requests Example of making a GET request to the Byul API to fetch news articles. It demonstrates how to include API key and query parameters for filtering. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=10&minImportance=7" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Dockerfile for PHP WebSocket Application Source: https://docs.byul.ai/websocket/examples/php This Dockerfile sets up a PHP 8.1 environment for a WebSocket application. It installs system dependencies, Composer, copies project files, installs PHP dependencies, and defines the entry point for the application. ```dockerfile FROM php:8.1-cli RUN apt-get update && apt-get install -y \ git \ zip \ unzip \ && rm -rf /var/lib/apt/lists/* RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer WORKDIR /app COPY composer.json ./ RUN composer install COPY . . CMD ["php", "websocket_client.php"] ``` -------------------------------- ### Running Pytest Tests and Coverage Source: https://docs.byul.ai/rest-api/examples/python Instructions on how to install necessary testing packages (pytest, pytest-mock, requests-mock) and execute the unit tests. It also covers how to generate code coverage reports using pytest-cov. ```bash # Install pytest pip install pytest pytest-mock requests-mock # Run tests pytest test_byul_client.py -v # Run with coverage pip install pytest-cov pytest test_byul_client.py --cov=byul_client --cov-report=html ``` -------------------------------- ### React Examples Source: https://docs.byul.ai/index Code examples for integrating with the Byul AI API using React. ```React import React, { useState, useEffect } from 'react'; function NewsFetcher() { const [news, setNews] = useState([]); const [error, setError] = useState(null); useEffect(() => { fetch('https://docs.byul.ai/api-reference/endpoint/get') .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(data => setNews(data)) .catch(error => setError(error)); }, []); if (error) { return
Error loading news: {error.message}
; } return (

Financial News

); } export default NewsFetcher; ``` -------------------------------- ### Example .env File Configuration Source: https://docs.byul.ai/rest-api/examples/python Provides an example of a .env file, which is used by libraries like python-dotenv to store environment-specific configurations. It includes settings for API keys and development modes. ```bash BYUL_API_KEY=byul_api_key FLASK_ENV=development DEBUG=True ``` -------------------------------- ### PHP Composer Dependencies for WebSocket Client Source: https://docs.byul.ai/websocket/examples/php Lists the Composer commands required to install the necessary PHP packages for building a WebSocket client, including ReactPHP components and optional ZMQ support. ```bash # Install ReactPHP WebSocket client composer require react/socket composer require pawl/ratchet-pawl composer require react/zmq # Optional: for message queuing # Alternative: ElephantIO for Socket.IO compatibility composer require elephantio/elephant.io ``` -------------------------------- ### PHP Examples Source: https://docs.byul.ai/index Code examples for integrating with the Byul AI API using PHP. ```PHP ``` -------------------------------- ### Securely Set API Key with Environment Variable Source: https://docs.byul.ai/websocket/quickstart For production environments, it is recommended to store your Byul API key securely using environment variables. This example shows how to export the API key in a bash shell. ```bash export BYUL_API_KEY=byul_api_key ``` -------------------------------- ### Example .env file for Byul AI Configuration Source: https://docs.byul.ai/rest-api/examples/php This is an example of a `.env` file used to store environment-specific configuration variables for the Byul AI project. It includes the `BYUL_API_KEY` for authentication and a `DEBUG` flag for controlling verbose output. ```Shell BYUL_API_KEY=byul_api_key DEBUG=true ``` -------------------------------- ### Node.js Examples Source: https://docs.byul.ai/index Code examples for integrating with the Byul AI API using Node.js. ```Node.js const axios = require('axios'); async function getNews() { try { const response = await axios.get('https://docs.byul.ai/api-reference/endpoint/get'); console.log(response.data); } catch (error) { console.error('Error fetching news:', error); } } ``` -------------------------------- ### Composer Setup for Byul AI News Client Source: https://docs.byul.ai/rest-api/examples/php This JSON defines the composer.json file for a PHP client library for the Byul AI News API. It specifies dependencies like GuzzleHttp for HTTP requests and Monolog for logging, along with development dependencies and autoloading configurations. ```JSON { "name": "your-company/byul-news-client", "description": "PHP client for Byul AI News API", "type": "library", "require": { "php": ">=7.4", "guzzlehttp/guzzle": "^7.0", "monolog/monolog": "^2.0" }, "require-dev": { "phpunit/phpunit": "^9.0", "squizlabs/php_codesniffer": "^3.6" }, "autoload": { "psr-4": { "ByulNews\": "src/" } }, "autoload-dev": { "psr-4": { "ByulNews\Tests\": "tests/" } } } ``` -------------------------------- ### package.json for Byul AI News Client Source: https://docs.byul.ai/rest-api/examples/nodejs The package.json file for a Node.js project that uses the Byul AI News API. It lists the project's name, version, description, main entry point, and scripts for starting, developing, and testing. It also specifies dependencies like 'node-fetch', 'express', and 'express-rate-limit', as well as devDependencies like 'nodemon' and 'jest'. ```json { "name": "byul-news-client", "version": "1.0.0", "description": "Byul AI News API client", "main": "index.js", "scripts": { "start": "node index.js", "dev": "nodemon index.js", "test": "jest" }, "dependencies": { "node-fetch": "^2.6.7", "express": "^4.18.0", "express-rate-limit": "^6.7.0" }, "devDependencies": { "nodemon": "^2.0.20", "jest": "^29.0.0" } } ``` -------------------------------- ### cURL Examples Source: https://docs.byul.ai/index Examples of how to interact with the Byul AI API using cURL. ```cURL curl https://docs.byul.ai/api-reference/endpoint/get ``` -------------------------------- ### Python Examples Source: https://docs.byul.ai/index Code examples for integrating with the Byul AI API using Python. ```Python import requests def get_news(): try: response = requests.get('https://docs.byul.ai/api-reference/endpoint/get') response.raise_for_status() # Raise an exception for bad status codes print(response.json()) except requests.exceptions.RequestException as e: print(f'Error fetching news: {e}') get_news() ``` -------------------------------- ### Byul AI Examples Source: https://docs.byul.ai/rest-api/news/filtering Code examples demonstrating how to interact with the Byul AI API using different programming languages and tools. ```cURL # Example cURL request to fetch news with filtering curl "https://api.byul.ai/news?limit=20&symbol=MSFT&minImportance=8" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```Node.js // Example Node.js request using fetch async function getNews() { const apiKey = 'YOUR_API_KEY'; const response = await fetch('https://api.byul.ai/news?limit=10&q=ai+regulation', { headers: { 'Authorization': `Bearer ${apiKey}` } }); const data = await response.json(); console.log(data); } ``` ```Python # Example Python request using requests library import requests api_key = 'YOUR_API_KEY' params = { 'limit': 5, 'symbol': 'GOOGL', 'minImportance': 5 } headers = { 'Authorization': f'Bearer {api_key}' } response = requests.get('https://api.byul.ai/news', params=params, headers=headers) news_data = response.json() print(news_data) ``` ```PHP // Example PHP request using cURL ``` ```React // Example React component using fetch import React, { useState, useEffect } from 'react'; function NewsFeed() { const [news, setNews] = useState([]); const apiKey = 'YOUR_API_KEY'; useEffect(() => { const fetchNews = async () => { const response = await fetch('https://api.byul.ai/news?limit=10', { headers: { 'Authorization': `Bearer ${apiKey}` } }); const data = await response.json(); setNews(data.results); }; fetchNews(); }, []); return (

Latest News

); } export default NewsFeed; ``` -------------------------------- ### Get Breaking News with Formatted Output using cURL and jq Source: https://docs.byul.ai/rest-api/examples/curl Fetches breaking news (importance score 9+) and formats the output using `jq` to extract specific fields like title, importance score, and date. Instructions for installing `jq` are provided. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=3&minImportance=9" \ -H "X-API-Key: byul_api_key" \ -H "Content-Type: application/json" \ | jq '.items[] | {title: .title, importance: .importanceScore, date: .date}' ``` ```jq jq '.items[] | {title: .title, importance: .importanceScore, date: .date}' ``` -------------------------------- ### WebSocket Quickstart Source: https://docs.byul.ai/index Learn about real-time streaming updates via WebSocket, available on Pro+ plans. ```APIDOC WebSocket Real-time streaming updates (Pro+ plans) ``` -------------------------------- ### Full WebSocket Implementation Examples Source: https://docs.byul.ai/websocket/examples/curl Provides complete implementation examples for WebSockets, likely in various programming languages. This section links to detailed guides for building WebSocket functionality. ```nodejs // See https://docs.byul.ai/websocket/examples/nodejs for full examples ``` -------------------------------- ### Rate Limits by Plan Source: https://docs.byul.ai/rest-api/quickstart Outlines the request rate limits for different Byul.ai subscription plans, including Test, Starter, Pro, and Enterprise tiers. It also mentions that all responses include rate limit headers for monitoring. ```APIDOC Test (Free): 30 requests/minute Starter ($19/month): 60 requests/minute Pro ($99/month): 120 requests/minute Enterprise: Custom limits ``` -------------------------------- ### Run Node.js WebSocket Application Source: https://docs.byul.ai/websocket/quickstart Execute your Node.js application to connect to the Byul WebSocket. This command initiates the connection and begins receiving real-time news updates. ```bash node your-websocket-app.js ``` -------------------------------- ### Setting BYUL_API_KEY Environment Variable Source: https://docs.byul.ai/rest-api/quickstart Demonstrates how to set the BYUL_API_KEY environment variable for secure API key management in production environments. ```bash export BYUL_API_KEY=byul_api_key ``` -------------------------------- ### Get High-Importance News with cURL Source: https://docs.byul.ai/rest-api/examples/curl Retrieves news articles with a minimum importance score of 8, effectively filtering for market-moving news. This example demonstrates using query parameters for filtering. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=5&minImportance=8" \ -H "X-API-Key: byul_api_key" \ -H "Content-Type: application/json" ``` -------------------------------- ### Get Latest News with cURL Source: https://docs.byul.ai/rest-api/examples/curl Fetches the most recent financial news articles using a GET request to the Byul API. It specifies a limit for the number of articles and includes the API key for authentication. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=10" \ -H "X-API-Key: byul_api_key" \ -H "Content-Type: application/json" ``` -------------------------------- ### PHP WebSocket Examples for Real-time Financial News Source: https://docs.byul.ai/websocket/examples/php This section provides various PHP code examples demonstrating how to connect to Byul AI's WebSocket API to stream real-time financial news. It covers basic connection setup, integration with the Laravel framework, and advanced use cases such as building a portfolio monitoring system or a trading signal generator. The examples also touch upon robust connection management, error handling, and performance optimization techniques. ```PHP onMessage(function($msg) { echo "Received: " . $msg . "\n"; }); $ws->connect(); // Subscribe to financial news (Conceptual) $ws->send(json_encode(['event' => 'subscribe', 'channel' => 'financial_news'])); // Laravel Integration Example (Conceptual - within a Job or Listener) // Assuming you have a WebSocket client library configured // WebSocketClient::connect('wss://api.byul.ai/v1/stream'); // WebSocketClient::send(json_encode(['event' => 'subscribe', 'channel' => 'financial_news', 'api_key' => env('BYUL_API_KEY')])); // Advanced Example: Portfolio Monitoring (Conceptual) // $ws->send(json_encode(['event' => 'subscribe', 'channel' => 'portfolio_updates', 'portfolio_id' => 'your_portfolio_id'])); // Advanced Example: Trading Signal Generator (Conceptual) // $ws->send(json_encode(['event' => 'subscribe', 'channel' => 'trading_signals', 'symbol' => 'BTCUSD'])); // Error Handling and Reconnection (Conceptual) // $ws->onError(function($error) { // echo "WebSocket Error: " . $error . "\n"; // // Implement reconnection logic here // }); // Keep the connection alive (Conceptual) // while($ws->isConnected()) { // $ws->receive(); // } ?> /* * Note: The above code is illustrative. Actual implementation will depend on the specific PHP WebSocket client library used. * Ensure you have the necessary WebSocket client library installed (e.g., Ratchet, Swoole). * WebSocket streaming requires a Pro Plan ($99/month) or Enterprise Plan. */ ``` -------------------------------- ### Byul.ai Configuration File Example (PHP) Source: https://docs.byul.ai/websocket/examples/php Shows a sample PHP configuration file for Byul.ai, defining API keys, WebSocket URLs, default filters, and retry settings. ```php env('BYUL_API_KEY'), 'websocket_url' => 'wss://api.byul.ai/news-v2', 'default_filters' => [ 'minImportance' => 6, 'limit' => 50 ], 'retry_settings' => [ 'max_retries' => 5, 'initial_delay' => 1, 'max_delay' => 30 ] ]; ``` -------------------------------- ### Get Recent News Articles with Byul AI API Source: https://docs.byul.ai/rest-api/news/data-format Example cURL command to fetch the latest 5 news articles from the Byul AI API. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=5" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Running Tests Source: https://docs.byul.ai/rest-api/examples/nodejs This snippet demonstrates how to execute the project's tests using the npm test command. ```bash npm test ``` -------------------------------- ### Test REST API Endpoints Source: https://docs.byul.ai/websocket/examples/curl Tests the basic functionality and authentication of the Byul AI REST API endpoints using GET requests. ```curl # Test if the base API is working curl -X GET "https://api.byul.ai/api/v2/news?limit=1" \ -H "X-API-Key: byul_api_key" \ -v # Check authentication curl -I -X GET "https://api.byul.ai/api/v2/news?limit=1" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Production Tips for WebSocket Applications Source: https://docs.byul.ai/websocket/examples/php Provides essential tips for deploying and managing PHP WebSocket applications in production environments, focusing on reliability, performance, and scalability. ```php # Use process managers like Supervisor to keep WebSocket connections alive # Implement proper logging for debugging connection issues # Use Redis or message queues for high-throughput scenarios # Monitor connection health and implement automatic restarts ``` -------------------------------- ### Get High-Quality Articles with Byul AI API Source: https://docs.byul.ai/rest-api/news/data-format Example cURL command to filter and fetch news articles with an importance score of 7 or higher from the Byul AI API. ```curl curl -X GET "https://api.byul.ai/api/v2/news?limit=3&minImportance=7" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Connect to Byul WebSocket API (Node.js) Source: https://docs.byul.ai/websocket/quickstart Establishes a WebSocket connection to the Byul API, authenticates using an API key, subscribes to news, and handles incoming data and errors. Requires the `socket.io-client` library. ```javascript const { io } = require('socket.io-client'); // Replace with your actual API key const API_KEY = 'byul_api_key'; // Connect to WebSocket const socket = io('wss://api.byul.ai/news-v2', { auth: { apiKey: API_KEY } }); // Handle connection socket.on('connect', () => { console.log('Connected to Byul WebSocket'); // Subscribe to high-importance news socket.emit('news:subscribe', { minImportance: 7 }); }); // Handle incoming news socket.on('news:data', (response) => { const { news } = response.data; news.forEach(article => { console.log(article.title); console.log(`Importance: ${article.importanceScore}/10`); console.log(`Category: ${article.category}`); console.log('---'); }); }); // Handle authentication success socket.on('auth:success', (data) => { console.log('Authenticated successfully:', data.user.plan); }); // Handle errors socket.on('news:error', (error) => { console.error('Error:', error.message); }); console.log('Connecting to Byul WebSocket...'); ``` -------------------------------- ### Filter News Since a Specific ID Source: https://docs.byul.ai/rest-api/examples/curl Retrieve news articles published after a specific article ID. This is useful for getting the latest updates since a known point. ```curl # Get latest news first LATEST_ID=$(curl -s -X GET "https://api.byul.ai/api/v2/news?limit=1" \ -H "X-API-Key: byul_api_key" | jq -r '.items[0]._id') # Later, get news since that ID curl -X GET "https://api.byul.ai/api/v2/news?sinceId=$LATEST_ID" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Production Deployment Environment Variables Source: https://docs.byul.ai/rest-api/examples/react Example environment variables for production deployment, distinguishing between backend server requirements (API key) and frontend needs (API URL). ```bash # Backend server BYUL_API_KEY=byul_api_key # Frontend (if needed for API URL) REACT_APP_API_URL=https://your-backend-api.com ``` -------------------------------- ### Paginate News Results with Cursors Source: https://docs.byul.ai/rest-api/examples/curl Handle large datasets by fetching news in pages using the `cursor` parameter. Retrieve the `nextCursor` from the response of the first request to get subsequent pages. ```curl # First page curl -X GET "https://api.byul.ai/api/v2/news?limit=50" \ -H "X-API-Key: byul_api_key" \ > first_page.json # Extract nextCursor from response NEXT_CURSOR=$(cat first_page.json | jq -r '.nextCursor') # Second page curl -X GET "https://api.byul.ai/api/v2/news?limit=50&cursor=$NEXT_CURSOR" \ -H "X-API-Key: byul_api_key" ``` -------------------------------- ### Bash REST API Examples Source: https://docs.byul.ai/rest-api/overview This example demonstrates how to make REST API requests using Bash and `curl`. It includes setting the API key for authentication. ```Bash API_KEY="YOUR_API_KEY" API_URL="https://api.byul.ai/v1/some-endpoint" curl -X GET "${API_URL}" \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" ``` -------------------------------- ### Error Handling and Reconnection Logic Source: https://docs.byul.ai/websocket/examples/curl Guides on how to handle WebSocket errors effectively and implement robust reconnection logic to ensure stable connections. This is crucial for maintaining communication in dynamic environments. ```javascript // See https://docs.byul.ai/websocket/error-handling for detailed guidance ```