{"id":29024560,"url":"https://github.com/codelucas/ceointerviews","last_synced_at":"2025-10-09T22:06:46.430Z","repository":{"id":288038906,"uuid":"948172427","full_name":"codelucas/ceointerviews","owner":"codelucas","description":"We are the largest database of insights from global leaders.  Access millions of verified quotes and precise transcripts from CEOs, Executives, Presidents, and Public Officials.","archived":false,"fork":false,"pushed_at":"2025-09-14T21:27:29.000Z","size":12,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-25T04:21:30.531Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ceointerviews.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codelucas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-13T21:47:19.000Z","updated_at":"2025-09-14T21:27:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e8f7100-9cfc-4400-8412-941522f09bf1","html_url":"https://github.com/codelucas/ceointerviews","commit_stats":null,"previous_names":["codelucas/ceointerviews"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codelucas/ceointerviews","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelucas%2Fceointerviews","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelucas%2Fceointerviews/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelucas%2Fceointerviews/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelucas%2Fceointerviews/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codelucas","download_url":"https://codeload.github.com/codelucas/ceointerviews/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelucas%2Fceointerviews/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002117,"owners_count":26083307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-26T04:02:49.394Z","updated_at":"2025-10-09T22:06:46.424Z","avatar_url":"https://github.com/codelucas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CEOInterviews Python Client\n\nA Python client library for the [CEOInterviews.AI](https://ceointerviews.ai) API. We are the largest database of insights from global leaders.\n\nAccess millions of verified quotes and precise transcripts from CEOs, Executives, Presidents, and Public Officials across more than 100,000 carefully vetted interviews, podcasts, and public appearances.\n\n[![PyPI version](https://badge.fury.io/py/ceointerviews.svg)](https://badge.fury.io/py/ceointerviews)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n### Why trust CEOInterviews?\n\n- Our rigorous AI verification process ensures you receive only authentic statements from influential figures—CEOs, Presidents, and Public Officials.\n- When you search for Elon Musk, **you get his exact words**—not someone else's interpretation.\n- Accuracy matters. Get direct insights from verified sources.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\"\u003e\u003cimg src=\"https://ceointerviews.ai/static/images/examples/example_failed_3.png\" alt=\"Low quality sources with red X\"\u003e\u003c/td\u003e\n    \u003ctd width=\"50%\"\u003e\u003cimg src=\"https://ceointerviews.ai/static/images/examples/example_elon_verified.png\" alt=\"CEOInterviews AI Verified with green checkmark\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cem\u003eOther sources: Low quality with inaccuracies\u003c/em\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cem\u003eCEOInterviews: AI-verified authentic quotes\u003c/em\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Installation\n\n```bash\npip install ceointerviews\n```\n\n## Authentication\n\nTo use this library, you need an API key from CEOInterviews.AI\n\nView our: [API Docs](https://ceointerviews.ai/api_docs/) and [API Purchase link](https://ceointerviews.ai/api_settings/)\n\n\n```python\nfrom ceointerviews import CEOInterviews\nclient = CEOInterviews(api_key=\"your_api_key_here\")\n```\n\n## Quick Start Examples\n\n### Get controversial quotes from Elon Musk on AI\n\n```python\nfrom ceointerviews import CEOInterviews\napi_key = \"your_api_key_here\"\nclient = CEOInterviews(api_key)\n\n# Get controversial quotes from Elon Musk on AI\nelon_resp = client.get_entities(keyword=\"elon musk\")\nelon_id = elon_resp.results[0][\"id\"]\nelon_ai_quotes = client.get_quotes(\n    entity_id=elon_id, is_controversial=True, keyword=\"artificial intelligence\"\n)\n\n# Print the first quote\nif elon_ai_quotes.results:\n    quote = elon_ai_quotes.results[0]\n    print(f\"Quote: \\\"{quote['text']}\\\"\")\n\n# Get financial policy quotes across all entities and topics\nfinancial_policy_quotes = client.get_quotes(is_financial_policy=True)\n```\n\n### Fetch entity data and conversations\n\n```python\n# Get Elon Musk's entity data\nelon_resp = client.get_entities(keyword=\"elon musk\")\nelon_obj = elon_resp.results[0]\n\n# Fetch Elon Musk's conversations\nelon_feed = client.get_feed(entity_id=elon_obj[\"id\"]).results\n\n# Inspect results\nfirst_item = elon_feed[0]\nprint(first_item[\"title\"])\n# Example: \"LA wildfire: Tesla CEO Elon Musk speaks to fire command team in Los Angeles\"\n\nprint(first_item[\"ai_summary\"])\n# Example: \"Elon Musk: discusses the ongoing investigation into the cause of the Palisades fire...\"\n```\n\n## Core Concepts\n\nThe CEOInterviews API is built around several key resources:\n\n### Entities\n\nAn `Entity` represents an influential individual such as a CEO, politician, or executive. Each entity has an ID, name, title, and associated organization information.\n\n### Feed Items (Conversations)\n\nTranscribed interviews, podcasts, and appearances where entities have spoken. Each feed item includes an AI-generated summary, title, full transcript, attached Quote objects from the transcript, and metadata.\n\n### Quotes\n\nNotable statements extracted from feed items. These can be filtered by attributes like \"controversial\" or \"financial policy.\" Each Quote is attached to both an Entity and a Feed Item.\n\n### Companies\n\nOrganizations associated with entities, including both public companies (with tickers) and private institutions. Each Company has a list of Entities linked to it, usually the C-suite.\n\n## API Reference\n\n[Click to see the full CEOInterviews API Docs](https://ceointerviews.ai/api_docs)\n\n### Get Entities\n\n```python\n# Search for entities by keyword\nentities = client.get_entities(keyword=\"elon musk\")\nprint(entities.results)\n\n# Pagination\npage_2 = client.get_entities(keyword=\"david\", page_num=2, page_size=10)\n\n# Get all entities in the database\nall_entities = []\nfor page_num in range(1, 500):\n    resp = client.get_entities(page_num=page_num, page_size=100)\n    all_entities.extend(resp.results)\n    if not resp.page_has_next:\n        break\n```\n\n### Get Feed (Conversations)\n\n```python\n# Get feed posts for a specific entity\nentities = client.get_entities(keyword=\"elon musk\")\nentity_id = entities.results[0][\"id\"]\nfeed = client.get_feed(entity_id=entity_id)\n\n# Search within an entity's feed\nkeyword_feed = client.get_feed(entity_id=entity_id, keyword=\"tesla\")\n\n# Get all conversations from the database\nall_convos = []\nfor page_num in range(1, 100):\n    resp = client.get_feed(page_num=page_num, page_size=50)\n    all_convos.extend(resp.results)\n    if not resp.page_has_next:\n        break\n```\n\n### Get Companies\n\n```python\n# Search for companies\ncompanies = client.get_companies(keyword=\"tesla\")\n\n# Pagination for companies\ncompanies_page_2 = client.get_companies(page_num=2, page_size=20)\n```\n\n### Get Quotes\n\n```python\n# Get all quotes\nquotes = client.get_quotes()\n\n# Get quotes for a specific entity\nentity_quotes = client.get_quotes(entity_id=123)\n\n# Get notable quotes\nnotable_quotes = client.get_quotes(is_notable=True)\n\n# Get controversial quotes\ncontroversial_quotes = client.get_quotes(is_controversial=True)\n\n# Get financial policy quotes\nfinancial_quotes = client.get_quotes(is_financial_policy=True)\n\n# Search quotes by keyword\nkeyword_quotes = client.get_quotes(keyword=\"innovation\")\n\n# Get all quotes from the database\nall_quotes = []\nfor page_num in range(1, 500):\n    resp = client.get_quotes(page_num=page_num, page_size=100)\n    all_quotes.extend(resp.results)\n    if not resp.page_has_next:\n        break\n```\n\n## Use Case Examples\n\n### Investment Research Platform\n\nBuild a dashboard that monitors financial policy statements from Federal Reserve officials and track sentiment changes over time:\n\n```python\n# Get all Federal Reserve officials\nfed_officials = client.get_entities(keyword=\"federal reserve\")\nfed_ids = [official[\"id\"] for official in fed_officials.results]\n\n# For each official, get their financial policy statements\nall_statements = []\nfor official_id in fed_ids:\n    statements = client.get_quotes(\n        entity_id=official_id,\n        is_financial_policy=True\n    )\n    all_statements.extend(statements.results)\n\n# Sort statements by date for timeline analysis\nsorted_statements = sorted(all_statements, key=lambda x: x[\"created_at\"])\n```\n\n### Competitive Intelligence Tool\n\nMonitor what competitors are saying about your product category or industry trends:\n\n```python\ncompetitor_names = [\"Competitor A\", \"Competitor B\", \"Competitor C\"]\nproduct_keywords = [\"product category\", \"industry trend\", \"technology\"]\ninsights = {}\n\nfor competitor in competitor_names:\n    # Get entity IDs for company executives\n    execs = client.get_entities(keyword=competitor)\n    exec_ids = [exec[\"id\"] for exec in execs.results]\n\n    competitor_insights = []\n    for exec_id in exec_ids:\n        for keyword in product_keywords:\n            # Get relevant statements\n            statements = client.get_feed(\n                entity_id=exec_id,\n                keyword=keyword\n            )\n            competitor_insights.extend(statements.results)\n\n    insights[competitor] = competitor_insights\n```\n\n### AI-Powered Financial Newsletter\n\nAutomatically generate a weekly newsletter summarizing what key financial leaders said about important topics.\n\n```python\n# Get quotes from the past week\nfrom datetime import datetime, timedelta\n\none_week_ago = (datetime.now() - timedelta(days=7)).isoformat()\n\n# Get notable financial quotes from the past week\nfinancial_quotes = client.get_quotes(\n    is_financial_policy=True,\n    is_notable=True\n    # Filter by date in your processing logic\n)\n\n# Organize by topic for your newsletter\ntopics = {}\nfor quote in financial_quotes.results:\n    for topic in quote.get(\"topics\", []):\n        if topic not in topics:\n            topics[topic] = []\n        topics[topic].append(quote)\n\n# Generate newsletter content\nnewsletter_content = \"# This Week in Finance\\n\\n\"\nfor topic, quotes in topics.items():\n    newsletter_content += f\"## {topic.title()}\\n\\n\"\n    # Top 3 quotes per topic\n    for quote in quotes[:3]:\n        newsletter_content += f\"**{quote['entity']['name']}** ({quote['entity']['title']}): \\\"{quote['text']}\\\"\\n\\n\"\n\n# Send your generated newsletter to subscribers\n```\n\n### Political Stance Analyzer\n\nTrack how politicians' stated positions on key issues evolve over time.\n\n```python\n# Define politicians and issues to track\npoliticians = [\"Politician A\", \"Politician B\"]\nissues = [\"healthcare\", \"taxes\", \"immigration\", \"climate change\"]\n\nstance_data = {}\nfor politician in politicians:\n    # Get politician entity\n    pol_resp = client.get_entities(keyword=politician)\n    pol_id = pol_resp.results[0][\"id\"]\n\n    stance_data[politician] = {}\n    for issue in issues:\n        # Get all statements on this issue\n        statements = client.get_feed(\n            entity_id=pol_id,\n            keyword=issue\n        )\n\n        # Store chronologically for timeline analysis\n        stance_data[politician][issue] = sorted(\n            statements.results,\n            key=lambda x: x[\"publish_date\"]\n        )\n\n# Analyze how positions evolved over time for each politician and issue\n```\n\n### Market Sentiment Analysis\n\nTrack CEO sentiment about economic conditions across different sectors.\n\n```python\n# Define sectors to analyze\nsectors = {\n    \"Technology\": [\"Apple\", \"Microsoft\", \"Google\", \"Meta\"],\n    \"Banking\": [\"JP Morgan\", \"Bank of America\", \"Goldman Sachs\"],\n    \"Energy\": [\"Exxon\", \"Chevron\", \"Shell\"]\n}\n\neconomic_keywords = [\"recession\", \"inflation\", \"growth\", \"outlook\"]\nsentiment_by_sector = {}\n\nfor sector, companies in sectors.items():\n    sector_sentiment = []\n\n    for company in companies:\n        # Get the CEO entity\n        company_execs = client.get_entities(keyword=company)\n        ceo = [e for e in company_execs.results if \"CEO\" in e[\"title\"]][0]\n\n        # Get statements about economic conditions\n        for keyword in economic_keywords:\n            statements = client.get_quotes(\n                entity_id=ceo[\"id\"],\n                keyword=keyword\n            )\n            for statement in statements.results:\n                sector_sentiment.append({\n                    \"company\": company,\n                    \"statement\": statement[\"text\"],\n                    \"date\": statement[\"created_at\"],\n                    \"keyword\": keyword\n                })\n\n    sentiment_by_sector[sector] = sector_sentiment\n\n# Compare sentiment across sectors to identify economic trend signals\n```\n\n## Response Format\n\nAll API methods return an `APIResults` object with the following properties:\n\n- `results`: List of results\n- `page_has_previous`: Boolean indicating if there are previous pages\n- `page_has_next`: Boolean indicating if there are more pages\n- `page_num`: Current page number\n- `num_results`: Number of results in the current page\n- `http_status`: HTTP status code of the response\n\nExample:\n\n```python\nresponse = client.get_entities(keyword=\"elon\")\nprint(f\"Found {response.num_results} results\")\nprint(f\"Current page: {response.page_num}\")\nprint(f\"Has next page: {response.page_has_next}\")\n```\n\n## Error Handling\n\nThe library uses the `requests` module's exception handling. If an API request fails, a `requests.exceptions.HTTPError` will be raised.\n\n```python\nimport requests\n\ntry:\n    response = client.get_entities(keyword=\"elon\")\nexcept requests.exceptions.HTTPError as e:\n    print(f\"API request failed: {e}\")\n```\n\n## Rate Limits\n\n- **API Tier**: 100 requests per minute, 100,000 requests per month\n- **Custom Tier**: Unlimited requests, custom rate limits based on needs\n\n## License\n\nMIT License","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelucas%2Fceointerviews","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelucas%2Fceointerviews","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelucas%2Fceointerviews/lists"}