{"openapi":"3.0.3","info":{"title":"Gamma Insights API","version":"1.0.0","description":"Versioned HTTP API for querying the Gamma Insights multi-country company\ndatabase -- harmonised registry identity, financials, directors, establishments\nand ownership links across France, the United Kingdom, Belgium, Norway, Spain,\nSwitzerland, Finland, Sweden, Luxembourg, Ireland, Denmark, Greece and Austria\n(more as countries come online), plus reviewed public earnings-call transcripts\nand collected issuer IR documents (earnings releases, presentations, reports).\n\nCompany, transcript, IR-document and coverage data is **read-only**. A small set\nof **write endpoints** (company lists, saved searches, CRM contact status and\nenrichment jobs) is available to write-capable keys -- see Authentication and\nWrite endpoints below.\n\nAll responses are JSON. The response shape is a **stable contract**: within\n`v1`, fields are only ever added -- never removed or renamed.\n\n## Authentication\n\nEvery data request must carry a valid API key in **one** of these headers:\n\n```\nX-API-Key: gmk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\nor\n```\nAuthorization: Api-Key gmk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\nKeys are issued by a Gamma operator and shown **once** at creation; they are\nstored only as a SHA-256 hash, so a lost key cannot be recovered -- request a\nnew one and revoke the old. Requests without a valid key receive `401`.\nContact us (see below) to obtain a key.\n\nRead endpoints accept any valid key. **Write endpoints require a write-capable\nkey** (issued with write access); a read-only key that calls a write endpoint\nreceives `403`.\n\nThe `/schema/` and `/coverage/` endpoints are public and need no key.\n\n## Rate limiting\n\nThree stacked limits, all **per user** (every key of the same user shares the\nsame buckets, so minting more keys does not raise the quota):\n\n- **600 requests / hour**\n- **5,000 requests / day**\n- **3 concurrent in-flight requests**\n\nExceeding any of them returns `429 Too Many Requests` with a `Retry-After`\nheader.\n\n## Pagination\n\nList endpoints use page-number pagination with an explicit envelope:\n\n```json\n{\n  \"count\": 4213,\n  \"page\": 1,\n  \"page_size\": 25,\n  \"total_pages\": 169,\n  \"has_next\": true,\n  \"has_previous\": false,\n  \"results\": [ ... ]\n}\n```\n\nControl it with `page` (1-based, default `1`) and `page_size`\n(default `25`, max `100`). Out-of-range values are clamped, not rejected.\n\n## Errors\n\n| Code | Meaning |\n|------|---------|\n| `200` | OK |\n| `400` | Invalid query/filter value (e.g. non-numeric `revenue_min`) |\n| `401` | Missing or invalid API key |\n| `403` | Write endpoint called with a read-only key |\n| `404` | No company / transcript with that identifier |\n| `429` | Rate limit exceeded (see `Retry-After`) |\n\nErrors share one envelope: `{\"detail\": \"...\"}`.\n\n## Data coverage\n\nDatasets vary by country (e.g. France exposes detailed account line items;\nthe UK files mostly balance-sheet-only accounts). Call\n`GET /api/v1/coverage/` for the machine-readable per-country matrix -- it lets\nyou tell \"this company has no filed accounts\" apart from \"this country's\naccounts are not collected at all\".\n\n## Country-native detail fields\n\nThe single-company **detail** endpoint (`GET /api/v1/companies/{id}/`) returns\nthe common company object **plus** a `country_extras` object of country-native\nregistry fields -- e.g. France's corporate purpose and share capital,\nSwitzerland's canton and cantonal-register link, Norway's employee count and VAT\nstatus, Belgium's registry contact channels. It is sparse and country-dependent\n(`{}` when the country exposes none) and is never returned by the list endpoint.\nThe `detail_fields` array in `GET /api/v1/coverage/` lists each country's keys.\n\n## IR documents\n\n`GET /api/v1/ir-documents/` searches collected issuer IR documents -- earnings\nreleases, presentations, reports -- scoped to the covered issuer universe, with\ncomma-separated filter values combined by AND.\n`GET /api/v1/ir-documents/{ticker}/{sha256}/download/` streams a single\ndocument. Read access only; any valid key works.\n\n## Write endpoints\n\nThese require a **write-capable key** (see Authentication) and act only on data\nowned by the key's user:\n\n- `GET/POST /api/v1/lists/`, `GET/DELETE /api/v1/lists/{id}/`,\n  `GET/POST/DELETE /api/v1/lists/{id}/companies/` -- manage your company lists.\n- `GET/POST /api/v1/saved-searches/`,\n  `GET/PUT/PATCH/DELETE /api/v1/saved-searches/{id}/` -- manage your saved\n  searches.\n- `POST /api/v1/contact-status/` -- set the CRM contact status you track for a\n  company.\n- `POST /api/v1/enrichment/` -- start a personal-email enrichment job. **This\n  spends your enrichment credits.**\n","contact":{"name":"Gamma Insights","email":"contact@gamma-insights.co","url":"https://gamma-insights.co"},"license":{"name":"Proprietary - Gamma Insights"}},"paths":{"/api/v1/companies/":{"get":{"operationId":"companies_list","description":"Returns a paginated list of companies matching the supplied filters. All filters are optional and combine with AND. Backed by the harmonised cross-country company table.","summary":"Search companies","parameters":[{"in":"query","name":"activity_code","schema":{"type":"string"},"description":"National activity code (NAF/APE, SIC, ...). Repeat for multiple."},{"in":"query","name":"activity_label","schema":{"type":"string"},"description":"Case-insensitive activity-label substring match."},{"in":"query","name":"city","schema":{"type":"string"},"description":"Case-insensitive city substring match."},{"in":"query","name":"country","schema":{"type":"string"},"description":"ISO 3166-1 alpha-2 code. Repeat for multiple (e.g. ?country=FR&country=GB)."},{"in":"query","name":"is_active","schema":{"type":"string"},"description":"Filter by activity status: 'Yes' or 'No'."},{"in":"query","name":"legal_form","schema":{"type":"string"},"description":"Case-insensitive legal-form substring match."},{"in":"query","name":"nace_code","schema":{"type":"string"},"description":"Harmonised NACE Rev.2 code. Repeat for multiple."},{"in":"query","name":"ordering","schema":{"type":"string"},"description":"Sort field: one of name, -name, country, -country, company_id, -company_id."},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Results per page (default 25, max 100)."},{"in":"query","name":"postal_code","schema":{"type":"string"},"description":"Exact postal code. Repeat for multiple."},{"in":"query","name":"q","schema":{"type":"string"},"description":"Free-text search over name, identifier and activity."},{"in":"query","name":"region","schema":{"type":"string"},"description":"Case-insensitive region substring match."},{"in":"query","name":"revenue_max","schema":{"type":"number","format":"double"},"description":"Maximum latest-known revenue (local currency)."},{"in":"query","name":"revenue_min","schema":{"type":"number","format":"double"},"description":"Minimum latest-known revenue (local currency)."}],"tags":["Companies"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicCompanyListResponse"}},"examples":{"CompanySearchResult":{"value":[{"count":4213,"page":1,"page_size":1,"total_pages":4213,"has_next":true,"has_previous":false,"results":[{"country":"FR","company_id":"552032534","name":"DANONE","legal_form":"SA","activity_code":"70.10Z","activity_label":"Activites des sieges sociaux","nace_code":"70.10","is_active":"Yes","creation_date":"1955-01-01","revenue":27600000000,"address":{"street":"17 boulevard Haussmann","postal_code":"75009","city":"Paris","region":"Ile-de-France"}}]}],"summary":"Company search result"}}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Invalid query or filter value."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/companies/{company_id}/":{"get":{"operationId":"companies_retrieve","description":"Returns one company by its national registry identifier. When the same identifier exists in more than one country, pass ?country= to disambiguate. The detail object is the list/search company shape PLUS a `country_extras` object of country-native registry fields (e.g. FR corporate_purpose/share_capital, GB company_status, CH canton, NO employees) -- sparse and country-dependent; `{}` where the country exposes none. See /coverage/ `detail_fields` for the per-country set. `country_extras` is never returned by the list endpoint.","summary":"Retrieve a single company","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"description":"A unique value identifying this common company record.","required":true},{"in":"query","name":"country","schema":{"type":"string"},"description":"Optional ISO2 country code to disambiguate the identifier."}],"tags":["Companies"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCompanyDetail"},"examples":{"OneCompany":{"value":{"country":"FR","company_id":"552032534","name":"DANONE","legal_form":"SA","activity_code":"70.10Z","activity_label":"Activites des sieges sociaux","nace_code":"70.10","is_active":"Yes","creation_date":"1955-01-01","revenue":27600000000,"address":{"street":"17 boulevard Haussmann","postal_code":"75009","city":"Paris","region":"Ile-de-France"},"country_extras":{"corporate_purpose":"Acquisition, detention et gestion de participations ; toutes prestations de conseil aux entreprises.","share_capital":"50000","department":"75"}},"summary":"One company"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No company with that identifier."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/companies/{company_id}/establishments/":{"get":{"operationId":"companies_establishments_retrieve","description":"Establishments / sites of a company. Available for FR (SIRET-level establishments), BE and NO (sub-units); empty elsewhere -- see /coverage/.","summary":"Company establishments","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"description":"A unique value identifying this common company record.","required":true},{"in":"query","name":"country","schema":{"type":"string"},"description":"Optional ISO2 country code to disambiguate."},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Per page (default 25, max 100)."}],"tags":["Companies"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEstablishmentsResponse"}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No company with that identifier."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/companies/{company_id}/financials/":{"get":{"operationId":"companies_financials_retrieve","description":"Multi-year financial accounts for a company. FR returns detailed account line items per filing (format \"line_items\"); GB/BE/NO/FI/SE/LU/DK return canonical metrics per period (format \"summary\"). Empty for countries without filed accounts (CH/IE/ES/GR) -- see /coverage/ for the per-country matrix.","summary":"Company financials","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"description":"A unique value identifying this common company record.","required":true},{"in":"query","name":"country","schema":{"type":"string"},"description":"Optional ISO2 country code to disambiguate."}],"tags":["Companies"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicFinancials"},"examples":{"France(format:LineItems)":{"value":{"company_id":"552032534","country":"FR","currency":"EUR","format":"line_items","periods":[{"closing_date":"2023-12-31","filing_date":"2024-06-30","period":"2023","items":[{"code":"CA","label":"Chiffre d'affaires net","value":27600000000},{"code":"RNET","label":"Resultat net","value":880000000}]}]},"summary":"France (format: line_items)"},"GB/BE/NO/FI/SE/LU/DK(format:Summary)":{"value":{"company_id":"00102498","country":"GB","currency":"GBP","format":"summary","periods":[{"period_end":"2023","metrics":{"revenue":1200000,"operating_income":95000,"net_income":72000,"equity":540000,"total_assets":880000}}]},"summary":"GB/BE/NO/FI/SE/LU/DK (format: summary)"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No company with that identifier."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/companies/{company_id}/participations/":{"get":{"operationId":"companies_participations_retrieve","description":"Declared inter-company ownership stakes: subsidiaries the company holds (`owns`) and companies that declared holding it (`owned_by`), with the percentage held and the counterpart equity + net result. Available for BE (NBB CBSO ParticipatingInterests); empty elsewhere. This is an explicit ownership graph, distinct from the shared-officer links implied by the representatives endpoint.","summary":"Company participations","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"description":"A unique value identifying this common company record.","required":true},{"in":"query","name":"country","schema":{"type":"string"},"description":"Optional ISO2 country code to disambiguate."}],"tags":["Companies"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicParticipationsResponse"}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No company with that identifier."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/companies/{company_id}/representatives/":{"get":{"operationId":"companies_representatives_retrieve","description":"Directors / officers / beneficial owners. Available for FR (representatives), GB (officers + PSCs), BE (directors), NO (roles), ES (cargos) and GR (directors/partners, with declared ownership percentages); empty for CH/DK/FI/IE/SE/LU -- see /coverage/. Birth dates, where present, are masked to year + month.","summary":"Company representatives","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"description":"A unique value identifying this common company record.","required":true},{"in":"query","name":"country","schema":{"type":"string"},"description":"Optional ISO2 country code to disambiguate."},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Per page (default 25, max 100)."}],"tags":["Companies"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRepresentativesResponse"},"examples":{"Directors/Officers":{"value":{"count":2,"page":1,"page_size":25,"total_pages":1,"has_next":false,"has_previous":false,"company_id":"552032534","country":"FR","results":[{"first_name":"Jane","last_name":"Doe","full_name":"Jane Doe","role":"President","is_executive":true,"is_corporate":false,"birth_year":1968,"birth_month":3,"kind":"representative"}]},"summary":"Directors / officers"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No company with that identifier."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/contact-status/":{"post":{"operationId":"contact_status_create","description":"Upserts the contact status for the given company under your user. Send contact_status='' to clear it.","summary":"Set a company contact status","tags":["Contact status"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactStatus"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PublicContactStatus"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PublicContactStatus"}}},"required":true},"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactStatus"}}},"description":""}}}},"/api/v1/coverage/":{"get":{"operationId":"coverage_retrieve","description":"Returns the static dataset-availability matrix per country: which sub-resources (financials, representatives, establishments, participations) hold data, the financials format, which extra registry fields the detail endpoint adds in `country_extras` (`detail_fields`), and how well the list-level `revenue` field is populated. Use it to tell \"this company has no data\" apart from \"this country does not collect that dataset\". No API key required.","summary":"Per-country data coverage","tags":["Coverage"],"security":[{}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCoverageResponse"}}},"description":""}}}},"/api/v1/enrichment/":{"post":{"operationId":"enrichment_create","description":"Runs personal-email discovery for the given companies and bills your user's enrichment credits (reserved on creation). Returns the job id immediately; large batches are processed asynchronously. A 403 with the reason is returned when credits are insufficient.","summary":"Start an enrichment job","tags":["Enrichment"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEnrichmentStart"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PublicEnrichmentStart"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PublicEnrichmentStart"}}},"required":true},"security":[{"ApiKeyAuth":[]}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEnrichmentJob"}}},"description":""}}}},"/api/v1/ir-documents/":{"get":{"operationId":"ir_documents_list","description":"Paginated list of collected IR documents, scoped to the issuer universe. Combine filters with AND (comma-separated values OR within a filter). Each result carries a `download_url` to stream the binary with the same API key.","summary":"Search IR documents","parameters":[{"in":"query","name":"company","schema":{"type":"string"},"description":"Issuer company name, via the referential."},{"in":"query","name":"country","schema":{"type":"string"},"description":"Issuer country (ISO2), via the referential."},{"in":"query","name":"doc_type","schema":{"type":"string"},"description":"Document type(s), comma-separated (e.g. earnings_release,presentation)."},{"in":"query","name":"exchange","schema":{"type":"string"},"description":"Listing exchange, via the referential."},{"in":"query","name":"fiscal","schema":{"type":"string"},"description":"Fiscal tag(s), comma-separated (e.g. Q2-2024)."},{"in":"query","name":"industry","schema":{"type":"string"},"description":"Issuer industry, via the referential."},{"in":"query","name":"lang","schema":{"type":"string"},"description":"ISO language code(s), comma-separated."},{"in":"query","name":"ordering","schema":{"type":"string"},"description":"published (default) | published_asc | fetched | size."},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Results per page (default 25, max 100)."},{"in":"query","name":"published_after","schema":{"type":"string"},"description":"ISO date lower bound (inclusive) on publication."},{"in":"query","name":"published_before","schema":{"type":"string"},"description":"ISO date upper bound (inclusive) on publication."},{"in":"query","name":"sector","schema":{"type":"string"},"description":"Issuer sector, via the referential."},{"in":"query","name":"source","schema":{"type":"string"},"description":"Collector source(s), comma-separated."},{"in":"query","name":"textsearch","schema":{"type":"string"},"description":"Free-text over title / ticker / company name (comma = OR)."},{"in":"query","name":"ticker","schema":{"type":"string"},"description":"Ticker(s), comma-separated (e.g. NVDA,AAPL)."}],"tags":["IR documents"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicIRDocument"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/ir-documents/{ticker}/{sha256}/download/":{"get":{"operationId":"ir_documents_download_retrieve","description":"Streams the document binary for a (ticker, sha256) pair.","summary":"Download an IR document","parameters":[{"in":"path","name":"sha256","schema":{"type":"string"},"required":true},{"in":"path","name":"ticker","schema":{"type":"string"},"required":true}],"tags":["IR documents"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"The document binary."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No such document."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/lists/":{"get":{"operationId":"lists_list","description":"Create and manage company lists tied to your API key's user.","summary":"List your company lists","tags":["Lists"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicList"}}}},"description":""}}},"post":{"operationId":"lists_create","description":"Create and manage company lists tied to your API key's user.","summary":"Create a company list","tags":["Lists"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicListCreate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PublicListCreate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PublicListCreate"}}},"required":true},"security":[{"ApiKeyAuth":[]}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicList"}}},"description":""}}}},"/api/v1/lists/{id}/":{"get":{"operationId":"lists_retrieve","description":"Create and manage company lists tied to your API key's user.","summary":"Retrieve one of your lists","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Lists"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicList"}}},"description":""}}},"delete":{"operationId":"lists_destroy","description":"Create and manage company lists tied to your API key's user.","summary":"Delete one of your lists","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Lists"],"security":[{"ApiKeyAuth":[]}],"responses":{"204":{"description":"No response body"}}}},"/api/v1/lists/{id}/companies/":{"get":{"operationId":"lists_companies_list","description":"Create and manage company lists tied to your API key's user.","summary":"List companies in a list","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Per page (default 25, max 100)."}],"tags":["Lists"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicListMember"}}}},"description":""}}},"post":{"operationId":"lists_companies_create","description":"Create and manage company lists tied to your API key's user.","summary":"Add companies to a list","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Lists"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicListMembers"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PublicListMembers"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PublicListMembers"}}},"required":true},"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"No response body"}}},"delete":{"operationId":"lists_companies_destroy","description":"Create and manage company lists tied to your API key's user.","summary":"Remove companies from a list","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Lists"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"No response body"}}}},"/api/v1/saved-searches/":{"get":{"operationId":"saved_searches_list","description":"Create and manage saved searches tied to your API key's user.","summary":"List your saved searches","tags":["Saved searches"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicSavedSearch"}}}},"description":""}}},"post":{"operationId":"saved_searches_create","description":"Create and manage saved searches tied to your API key's user.","summary":"Create a saved search","tags":["Saved searches"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}}},"required":true},"security":[{"ApiKeyAuth":[]}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}}},"description":""}}}},"/api/v1/saved-searches/{id}/":{"get":{"operationId":"saved_searches_retrieve","description":"Create and manage saved searches tied to your API key's user.","summary":"Retrieve one of your saved searches","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Saved searches"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}}},"description":""}}},"put":{"operationId":"saved_searches_update","description":"Create and manage saved searches tied to your API key's user.","summary":"Update a saved search","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Saved searches"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}}},"required":true},"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}}},"description":""}}},"patch":{"operationId":"saved_searches_partial_update","description":"Create and manage saved searches tied to your API key's user.","summary":"Partially update a saved search","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Saved searches"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedPublicSavedSearch"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedPublicSavedSearch"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedPublicSavedSearch"}}}},"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSavedSearch"}}},"description":""}}},"delete":{"operationId":"saved_searches_destroy","description":"Create and manage saved searches tied to your API key's user.","summary":"Delete a saved search","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Saved searches"],"security":[{"ApiKeyAuth":[]}],"responses":{"204":{"description":"No response body"}}}},"/api/v1/transcripts/":{"get":{"operationId":"transcripts_list","description":"Returns a paginated list of earnings-call transcripts (metadata + sentiment summary). Only reviewed, public earnings calls are exposed.","summary":"Search transcripts","parameters":[{"in":"query","name":"company","schema":{"type":"string"},"description":"Case-insensitive company-name substring."},{"in":"query","name":"country","schema":{"type":"string"},"description":"Case-insensitive country substring."},{"in":"query","name":"date_from","schema":{"type":"string"},"description":"Earliest call date (YYYY-MM-DD)."},{"in":"query","name":"date_to","schema":{"type":"string"},"description":"Latest call date (YYYY-MM-DD)."},{"in":"query","name":"industry","schema":{"type":"string"},"description":"Case-insensitive industry substring."},{"in":"query","name":"language","schema":{"type":"string"},"description":"Language code (e.g. en, fr)."},{"in":"query","name":"ordering","schema":{"type":"string"},"description":"Sort: one of call_date, -call_date, company_name, -company_name, ticker, -ticker."},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Results per page (default 25, max 100)."},{"in":"query","name":"q","schema":{"type":"string"},"description":"Free-text search over company, ticker and title."},{"in":"query","name":"quarter","schema":{"type":"string"},"description":"Fiscal quarter substring (e.g. Q1 2024)."},{"in":"query","name":"sector","schema":{"type":"string"},"description":"Case-insensitive sector substring."},{"in":"query","name":"ticker","schema":{"type":"string"},"description":"Exact ticker (case-insensitive)."},{"in":"query","name":"year","schema":{"type":"integer"},"description":"Calendar year of the call date."}],"tags":["Transcripts"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicTranscriptListResponse"}},"examples":{"TranscriptSearchResult":{"value":[{"count":318,"page":1,"page_size":1,"total_pages":318,"has_next":true,"has_previous":false,"results":[{"id":42,"company_name":"Apple Inc.","ticker":"AAPL","sector":"Technology","industry":"Consumer Electronics","country":"US","title":"Apple Q1 2024 Earnings Call","call_type":"earnings","quarter":"Q1 2024","call_date":"2024-02-01","language":"en","summary":"Record quarterly revenue driven by services growth.","sentiment":{"positive_count":42,"neutral_count":18,"negative_count":6,"positive_percentage":63.6,"neutral_percentage":27.3,"negative_percentage":9.1},"url":"https://app.gamma-insights.co/transcripts/42"}]}],"summary":"Transcript search result"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/transcripts/{id}/":{"get":{"operationId":"transcripts_retrieve","description":"Returns one transcript: metadata, sentiment summary, and any shared classification label distributions.","summary":"Retrieve a transcript","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true}],"tags":["Transcripts"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTranscriptDetail"},"examples":{"OneTranscript":{"value":{"id":42,"company_name":"Apple Inc.","ticker":"AAPL","sector":"Technology","industry":"Consumer Electronics","country":"US","title":"Apple Q1 2024 Earnings Call","call_type":"earnings","quarter":"Q1 2024","call_date":"2024-02-01","language":"en","summary":"Record quarterly revenue driven by services growth.","sentiment":{"positive_count":42,"neutral_count":18,"negative_count":6,"positive_percentage":63.6,"neutral_percentage":27.3,"negative_percentage":9.1},"url":"https://app.gamma-insights.co/transcripts/42","classifications":[{"template":"Guidance tone","total_classified":12,"labels":{"raised":{"count":7},"maintained":{"count":5}}}]},"summary":"One transcript"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No public transcript with that id."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}},"/api/v1/transcripts/{id}/content/":{"get":{"operationId":"transcripts_content_retrieve","description":"Returns the speaker-tagged content blocks of a transcript with their sentiment, paginated by block.","summary":"Retrieve transcript content","parameters":[{"in":"path","name":"id","schema":{"type":"integer"},"required":true},{"in":"query","name":"page","schema":{"type":"integer"},"description":"1-based page number (default 1)."},{"in":"query","name":"page_size","schema":{"type":"integer"},"description":"Blocks per page (default 25, max 100)."}],"tags":["Transcripts"],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTranscriptContentResponse"},"examples":{"TranscriptContentBlocks":{"value":{"count":240,"page":1,"page_size":1,"total_pages":240,"has_next":true,"has_previous":false,"transcript_id":42,"results":[{"sequence_order":1,"speaker":"Tim Cook","content":"Thank you and good afternoon everyone.","sentiment":"positive","sentiment_confidence":0.91,"start_time":12.4,"end_time":15.8}]},"summary":"Transcript content blocks"}}}},"description":""},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"No public transcript with that id."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Rate limit exceeded (see Retry-After)."}}}}},"components":{"schemas":{"BlankEnum":{"enum":[""]},"ContactStatusEnum":{"enum":["contactee","relancee","en_cours","cloturee"],"type":"string","description":"* `` - \n* `contactee` - contactee\n* `relancee` - relancee\n* `en_cours` - en_cours\n* `cloturee` - cloturee"},"ErrorResponse":{"type":"object","description":"Standard error envelope (docs only).","properties":{"detail":{"type":"string"}},"required":["detail"]},"PatchedPublicSavedSearch":{"type":"object","description":"A saved search owned by the API-key user. `parameters` is an opaque JSON\nobject (the search filter blob) round-tripped verbatim.","properties":{"id":{"type":"integer","readOnly":true},"name":{"type":"string","maxLength":255},"parameters":{},"country":{"type":"string","default":"FR","description":"ISO2 country, or 'ALL' for cross-country.","maxLength":8},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}}},"PublicAddress":{"type":"object","properties":{"street":{"type":"string","nullable":true,"default":""},"postal_code":{"type":"string","nullable":true,"default":""},"city":{"type":"string","nullable":true,"default":""},"region":{"type":"string","nullable":true,"default":""}}},"PublicClassification":{"type":"object","description":"A shared (non-user-specific) classification's aggregate label distribution.","properties":{"template":{"type":"string"},"total_classified":{"type":"integer"},"labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{}},"nullable":true}},"required":["labels","template","total_classified"]},"PublicCompany":{"type":"object","description":"One company as returned by the public API (list + detail).\n\nBacked by the ``CommonCompanyRecord`` ClickHouse model.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code, e.g. 'FR'."},"company_id":{"type":"string","description":"National registry identifier (SIREN for FR, company number for GB, ...)."},"name":{"type":"string","description":"Registered company name."},"legal_form":{"type":"string","nullable":true,"default":"","description":"Legal form label."},"activity_code":{"type":"string","nullable":true,"default":"","description":"National activity code (NAF/APE, SIC, ...)."},"activity_label":{"type":"string","nullable":true,"default":"","description":"Activity label."},"nace_code":{"type":"string","nullable":true,"default":"","description":"Harmonised NACE Rev.2 code."},"is_active":{"type":"string","default":"Yes","description":"'Yes' if the company is active, else 'No'."},"creation_date":{"type":"string","nullable":true,"default":"","description":"Registration date (ISO-8601 where available)."},"revenue":{"type":"number","format":"double","nullable":true,"description":"Latest known revenue in local currency (coverage varies by country)."},"address":{"allOf":[{"$ref":"#/components/schemas/PublicAddress"}],"readOnly":true}},"required":["address","company_id","country","name"]},"PublicCompanyDetail":{"type":"object","description":"Single-company DETAIL object: the list/search company shape PLUS a\n``country_extras`` object of country-native registry fields fetched via the\ncountry adapter.\n\nStill STRICTLY registry data -- the extras come from the adapter's\n``to_common().country_specific`` (a public projection), never from the CRM /\nenrichment / list layer. ``country_extras`` is `{}` for countries that\nexpose no extras. Purely additive to the list shape; list/search are\nunchanged and never carry it.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code, e.g. 'FR'."},"company_id":{"type":"string","description":"National registry identifier (SIREN for FR, company number for GB, ...)."},"name":{"type":"string","description":"Registered company name."},"legal_form":{"type":"string","nullable":true,"default":"","description":"Legal form label."},"activity_code":{"type":"string","nullable":true,"default":"","description":"National activity code (NAF/APE, SIC, ...)."},"activity_label":{"type":"string","nullable":true,"default":"","description":"Activity label."},"nace_code":{"type":"string","nullable":true,"default":"","description":"Harmonised NACE Rev.2 code."},"is_active":{"type":"string","default":"Yes","description":"'Yes' if the company is active, else 'No'."},"creation_date":{"type":"string","nullable":true,"default":"","description":"Registration date (ISO-8601 where available)."},"revenue":{"type":"number","format":"double","nullable":true,"description":"Latest known revenue in local currency (coverage varies by country)."},"address":{"allOf":[{"$ref":"#/components/schemas/PublicAddress"}],"readOnly":true},"country_extras":{"allOf":[{"$ref":"#/components/schemas/PublicCountryExtras"}],"description":"Country-native registry fields beyond the common shape. Sparse and country-dependent; {} when the country exposes none. See /coverage/ `detail_fields`."}},"required":["address","company_id","country","name"]},"PublicCompanyListResponse":{"type":"object","description":"Envelope for the paginated company list response (docs only).","properties":{"count":{"type":"integer","description":"Total number of companies matching the query."},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_pages":{"type":"integer"},"has_next":{"type":"boolean"},"has_previous":{"type":"boolean"},"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicCompany"}}},"required":["count","has_next","has_previous","page","page_size","results","total_pages"]},"PublicContactStatus":{"type":"object","properties":{"company_id":{"type":"string","description":"Registry identifier of the company."},"contact_status":{"description":"One of '', 'contactee', 'relancee', 'en_cours', 'cloturee' ('' clears the status).\n\n* `` - \n* `contactee` - contactee\n* `relancee` - relancee\n* `en_cours` - en_cours\n* `cloturee` - cloturee","oneOf":[{"$ref":"#/components/schemas/ContactStatusEnum"},{"$ref":"#/components/schemas/BlankEnum"}]},"country":{"type":"string","default":"FR","maxLength":8}},"required":["company_id","contact_status"]},"PublicCountryCoverage":{"type":"object","description":"Dataset availability for one country (docs only).","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 code."},"financials":{"type":"string","nullable":true,"description":"'line_items' (FR), 'summary' (GB/BE/NO/FI/SE/LU), or null when no accounts are collected for this country."},"representatives":{"type":"boolean","description":"Whether /companies/{id}/representatives/ returns data."},"representative_kinds":{"type":"array","items":{"type":"string"},"description":"The `kind` values this country emits (officer, psc, ...)."},"establishments":{"type":"boolean","description":"Whether /companies/{id}/establishments/ returns data."},"participations":{"type":"boolean","description":"Whether /companies/{id}/participations/ returns data."},"list_revenue":{"type":"string","description":"Coverage of the `revenue` field on list results: 'high' | 'partial' | 'none'."},"detail_fields":{"type":"array","items":{"type":"string"},"description":"Country-native registry fields returned in the detail `country_extras` object, beyond the list shape (e.g. corporate_purpose, share_capital, canton). Empty when none."},"notes":{"type":"string","description":"Human-readable caveats."}},"required":["country","detail_fields","establishments","financials","list_revenue","notes","participations","representative_kinds","representatives"]},"PublicCountryExtras":{"type":"object","description":"Country-native registry extras returned under ``country_extras`` on the\ncompany DETAIL response. SPARSE: only the keys the company's country\npopulates appear (see /coverage/ `detail_fields` for the per-country set);\neverything else is omitted, not null.\n\nStrictly public registry data -- sourced from the adapter's\n``to_common().country_specific`` projection via an explicit whitelist, never\nfrom the CRM / enrichment / list layer. The union below is the documented\nschema; keep it in step with company_detail_data._PUBLIC_DETAIL_EXTRA_FIELDS.","properties":{"corporate_purpose":{"type":"string","description":"Declared corporate purpose / objet social (FR)."},"department":{"type":"string","description":"Department code (FR)."},"share_capital":{"type":"string","description":"Registered share capital, raw registry value (FR, ES)."},"company_category":{"type":"string","description":"Company category (GB)."},"company_status":{"type":"string","description":"Registry status, e.g. 'Active', 'Liquidation' (GB)."},"country_of_origin":{"type":"string","description":"Country of origin (GB)."},"secondary_activity_code":{"type":"string","description":"Secondary SIC code (GB)."},"secondary_activity_label":{"type":"string","description":"Secondary SIC description (GB)."},"legal_form_code":{"type":"string","description":"Native legal-form code (BE, NO, FI)."},"registry_status":{"type":"string","description":"Enterprise status (BE)."},"enterprise_type":{"type":"string","description":"Type of enterprise, e.g. natural/legal person (BE)."},"phone":{"type":"string","description":"Registry contact phone, where published (BE)."},"email":{"type":"string","description":"Registry contact email, where published (BE)."},"website":{"type":"string","description":"Registry-listed website, where published (BE)."},"province":{"type":"string","description":"Province (ES)."},"employees":{"type":"integer","description":"Registered employee count (NO)."},"registration_date":{"type":"string","description":"Registration date (NO)."},"municipality":{"type":"string","description":"Municipality name (NO, CH)."},"municipality_code":{"type":"string","description":"Municipality code (NO, FI)."},"vat_registered":{"type":"boolean","description":"Whether the entity is VAT-registered (NO)."},"last_accounts_year":{"type":"string","description":"Year of the latest filed accounts (NO)."},"canton":{"type":"string","description":"Canton (CH)."},"cantonal_register_url":{"type":"string","description":"Link to the cantonal commercial register (CH)."},"coordinates":{"type":"string","description":"Geographic coordinates (CH)."}}},"PublicCoverageResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicCountryCoverage"}}},"required":["results"]},"PublicEnrichmentJob":{"type":"object","description":"Echo of the created enrichment job.","properties":{"id":{"type":"integer"},"status":{"type":"string"},"country":{"type":"string"},"enrichment_name":{"type":"string"},"total_companies":{"type":"integer"},"credits_reserved":{"type":"integer"},"message":{"type":"string"}},"required":["country","enrichment_name","id","status","total_companies"]},"PublicEnrichmentStart":{"type":"object","properties":{"company_ids":{"type":"array","items":{"type":"string"},"description":"Registry identifiers to enrich (personal-email discovery)."},"country":{"type":"string","default":"FR","maxLength":8},"name":{"type":"string","default":"","description":"Optional label for the enrichment job."}},"required":["company_ids"]},"PublicEstablishment":{"type":"object","properties":{"id":{"type":"string","description":"SIRET (FR), establishment number (BE) or sub-unit organisasjonsnummer (NO)."},"name":{"type":"string","default":""},"role":{"type":"string","default":""},"activity_code":{"type":"string","default":""},"activity_label":{"type":"string","default":""},"start_date":{"type":"string","nullable":true},"closed_date":{"type":"string","nullable":true},"address":{"$ref":"#/components/schemas/PublicEstablishmentAddress"}},"required":["address","id"]},"PublicEstablishmentAddress":{"type":"object","properties":{"street":{"type":"string","default":""},"postal_code":{"type":"string","default":""},"city":{"type":"string","default":""},"country":{"type":"string","default":""}}},"PublicEstablishmentsResponse":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_pages":{"type":"integer"},"has_next":{"type":"boolean"},"has_previous":{"type":"boolean"},"company_id":{"type":"string"},"country":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicEstablishment"}}},"required":["company_id","count","country","has_next","has_previous","page","page_size","results","total_pages"]},"PublicFinancials":{"type":"object","description":"Multi-year financials. The `periods` item shape is country-specific:\nFR returns labelled account line items per filing (format 'line_items');\nGB/BE/NO/FI/SE/LU/DK return canonical metrics (revenue, operating_income,\nnet_income, equity, ...) per period (format 'summary').","properties":{"company_id":{"type":"string"},"country":{"type":"string"},"currency":{"type":"string","nullable":true},"format":{"type":"string","nullable":true,"description":"'line_items' (FR) or 'summary' (GB/BE/NO/FI/SE/LU/DK)."},"periods":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["company_id","country","currency","format","periods"]},"PublicIRDocument":{"type":"object","description":"One collected IR document (earnings release / presentation / report / ...).","properties":{"ticker":{"type":"string"},"ref_id":{"type":"string"},"company_name":{"type":"string"},"country":{"type":"string"},"doc_type":{"type":"string"},"source":{"type":"string"},"fiscal":{"type":"string"},"title":{"type":"string"},"published_at":{"type":"string"},"lang":{"type":"string"},"content_type":{"type":"string"},"size":{"type":"integer"},"sha256":{"type":"string"},"download_url":{"type":"string","description":"Authenticated URL to stream the binary (same API key)."}},"required":["company_name","content_type","country","doc_type","download_url","fiscal","lang","published_at","ref_id","sha256","size","source","ticker","title"]},"PublicList":{"type":"object","description":"A company list owned by the API-key user.","properties":{"id":{"type":"integer","readOnly":true},"name":{"type":"string"},"description":{"type":"string"},"country":{"type":"string"},"is_dynamic":{"type":"boolean"},"member_count":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}},"required":["country","created_at","description","id","is_dynamic","member_count","name"]},"PublicListCreate":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":"string","default":""},"country":{"type":"string","default":"FR","description":"ISO2 country for the list (default FR).","maxLength":8}},"required":["name"]},"PublicListMember":{"type":"object","properties":{"company_id":{"type":"string"},"country":{"type":"string"},"company_name":{"type":"string"},"notes":{"type":"string"}},"required":["company_id","company_name","country","notes"]},"PublicListMembers":{"type":"object","description":"Body for adding/removing companies to/from a list.","properties":{"company_ids":{"type":"array","items":{"type":"string"},"description":"Registry identifiers (siren / company number / orgnr / ...) to add or remove."},"country":{"type":"string","default":"","description":"ISO2 country for the companies. Inferred per company when omitted.","maxLength":8}},"required":["company_ids"]},"PublicParticipation":{"type":"object","description":"A declared inter-company ownership stake (BE ParticipatingInterests).","properties":{"company_id":{"type":"string","description":"Counterpart national id."},"name":{"type":"string","default":""},"percentage":{"type":"number","format":"double","nullable":true,"description":"Fraction held (1.0 = 100%)."},"equity":{"type":"number","format":"double","nullable":true},"net_result":{"type":"number","format":"double","nullable":true},"currency":{"type":"string","default":"EUR"},"account_date":{"type":"string","default":""}},"required":["company_id","equity","net_result","percentage"]},"PublicParticipationsResponse":{"type":"object","description":"Ownership graph for one company: subsidiaries it holds (`owns`) and\ncompanies that declared holding it (`owned_by`). BE only today.","properties":{"company_id":{"type":"string"},"country":{"type":"string"},"owns":{"type":"array","items":{"$ref":"#/components/schemas/PublicParticipation"}},"owned_by":{"type":"array","items":{"$ref":"#/components/schemas/PublicParticipation"}}},"required":["company_id","country","owned_by","owns"]},"PublicRepresentative":{"type":"object","properties":{"first_name":{"type":"string","default":""},"last_name":{"type":"string","default":""},"full_name":{"type":"string","default":""},"role":{"type":"string","default":""},"is_executive":{"type":"boolean","default":false},"is_corporate":{"type":"boolean","default":false},"corporate_name":{"type":"string","default":""},"age":{"type":"integer","nullable":true},"birth_year":{"type":"integer","nullable":true},"birth_month":{"type":"integer","nullable":true},"nationality":{"type":"string","default":""},"appointed_date":{"type":"string","nullable":true},"resigned_date":{"type":"string","nullable":true},"natures_of_control":{"type":"string","default":""},"ceased_on":{"type":"string","default":""},"ownership_percentage":{"type":"string","default":"","description":"Declared ownership stake as a string (GR partners), e.g. '99%'. Blank when not declared."},"kind":{"type":"string","description":"representative (FR) | officer/psc (GB) | director (BE) | role (NO) | cargo (ES) | director/partner (GR)."}},"required":["kind"]},"PublicRepresentativesResponse":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_pages":{"type":"integer"},"has_next":{"type":"boolean"},"has_previous":{"type":"boolean"},"company_id":{"type":"string"},"country":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicRepresentative"}}},"required":["company_id","count","country","has_next","has_previous","page","page_size","results","total_pages"]},"PublicSavedSearch":{"type":"object","description":"A saved search owned by the API-key user. `parameters` is an opaque JSON\nobject (the search filter blob) round-tripped verbatim.","properties":{"id":{"type":"integer","readOnly":true},"name":{"type":"string","maxLength":255},"parameters":{},"country":{"type":"string","default":"FR","description":"ISO2 country, or 'ALL' for cross-country.","maxLength":8},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","id","name","parameters","updated_at"]},"PublicTranscript":{"type":"object","description":"One transcript's metadata + sentiment summary (list + detail base).","properties":{"id":{"type":"integer"},"company_name":{"type":"string"},"ticker":{"type":"string","default":""},"sector":{"type":"string","nullable":true,"default":""},"industry":{"type":"string","nullable":true,"default":""},"country":{"type":"string","nullable":true,"default":""},"title":{"type":"string","nullable":true,"default":""},"call_type":{"type":"string","nullable":true,"default":""},"quarter":{"type":"string","nullable":true,"default":""},"call_date":{"type":"string","format":"date","nullable":true},"language":{"type":"string","nullable":true,"default":""},"summary":{"type":"string","nullable":true,"default":""},"sentiment":{"allOf":[{"$ref":"#/components/schemas/SentimentSummary"}],"readOnly":true},"url":{"type":"string","readOnly":true}},"required":["call_date","company_name","id","sentiment","url"]},"PublicTranscriptContent":{"type":"object","description":"One speaker block of the transcript with its sentiment.","properties":{"sequence_order":{"type":"integer"},"speaker":{"type":"string","default":""},"content":{"type":"string"},"sentiment":{"type":"string","nullable":true,"default":""},"sentiment_confidence":{"type":"number","format":"double","nullable":true},"start_time":{"type":"number","format":"double","nullable":true},"end_time":{"type":"number","format":"double","nullable":true}},"required":["content","sequence_order"]},"PublicTranscriptContentResponse":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_pages":{"type":"integer"},"has_next":{"type":"boolean"},"has_previous":{"type":"boolean"},"transcript_id":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicTranscriptContent"}}},"required":["count","has_next","has_previous","page","page_size","results","total_pages","transcript_id"]},"PublicTranscriptDetail":{"type":"object","description":"Detail view: metadata + sentiment + shared classification distributions.\n\n``classifications`` is attached to the instance by the view (only\ncompleted, shared classifications -- never per-user ones).","properties":{"id":{"type":"integer"},"company_name":{"type":"string"},"ticker":{"type":"string","default":""},"sector":{"type":"string","nullable":true,"default":""},"industry":{"type":"string","nullable":true,"default":""},"country":{"type":"string","nullable":true,"default":""},"title":{"type":"string","nullable":true,"default":""},"call_type":{"type":"string","nullable":true,"default":""},"quarter":{"type":"string","nullable":true,"default":""},"call_date":{"type":"string","format":"date","nullable":true},"language":{"type":"string","nullable":true,"default":""},"summary":{"type":"string","nullable":true,"default":""},"sentiment":{"allOf":[{"$ref":"#/components/schemas/SentimentSummary"}],"readOnly":true},"url":{"type":"string","readOnly":true},"classifications":{"type":"array","items":{"$ref":"#/components/schemas/PublicClassification"},"readOnly":true}},"required":["call_date","classifications","company_name","id","sentiment","url"]},"PublicTranscriptListResponse":{"type":"object","properties":{"count":{"type":"integer"},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_pages":{"type":"integer"},"has_next":{"type":"boolean"},"has_previous":{"type":"boolean"},"results":{"type":"array","items":{"$ref":"#/components/schemas/PublicTranscript"}}},"required":["count","has_next","has_previous","page","page_size","results","total_pages"]},"SentimentSummary":{"type":"object","description":"Transcript-level sentiment tallies (read from TranscriptInfo fields).","properties":{"positive_count":{"type":"integer"},"neutral_count":{"type":"integer"},"negative_count":{"type":"integer"},"positive_percentage":{"type":"number","format":"double"},"neutral_percentage":{"type":"number","format":"double"},"negative_percentage":{"type":"number","format":"double"}},"required":["negative_count","negative_percentage","neutral_count","neutral_percentage","positive_count","positive_percentage"]}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your Gamma Insights API key (gmk_...)."}}},"servers":[{"url":"https://api.gamma-insights.co","description":"Production"}],"tags":[{"name":"Companies","description":"Search and retrieve companies, financials, directors/officers, establishments and ownership stakes."},{"name":"Transcripts","description":"Search and read reviewed public earnings-call transcripts with sentiment and shared classifications."},{"name":"Coverage","description":"Per-country dataset-availability matrix (public, no API key required)."},{"name":"IR documents","description":"Search and download issuer IR documents (earnings releases, presentations, reports)."},{"name":"Lists","description":"Create and manage company lists (write-capable API key required)."},{"name":"Saved searches","description":"Create and manage saved searches (write-capable API key required)."},{"name":"Contact status","description":"Set the CRM contact status you track for a company (write-capable API key required)."},{"name":"Enrichment","description":"Start enrichment jobs for companies (write-capable API key required; bills your credits)."}],"externalDocs":{"url":"https://gamma-insights.co","description":"Gamma Insights"}}