Legacy CSV Field Mapping
Map legacy Crunchbase CSV fields to current API and static-export fields.
Use this reference to map fields from the legacy Crunchbase CSV exports to their equivalents in the current Crunchbase API and static exports.
About this reference
The tables below are the complete legacy-to-current field crosswalk. Most rows are direct mappings. When a legacy field requires a join, relationship traversal, aggregation, filter, or derived value, its field name is linked to the corresponding recipe in Advanced migration patterns at the bottom of this page. Each recipe identifies the exact current fields and includes example v4 API calls.
Mapping notes
N/Aidentifies a legacy field that was intentionally removed and has no direct replacement.- Some mappings require deriving a value, joining another export, or aggregating related records. See Migration notes for the required transformation.
- Every mapping and note from the maintained legacy CSV mapping workbook is included below.
Legacy table index
acquisitions · category_groups · degrees · event_appearances · events · funding_rounds · funds · investment_partners · investments · investors · ipos · jobs · org_parents · organization_descriptions · organizations · people · people_descriptions
acquisitions
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | ACQUISITIONS identifier. | — |
| permalink | ACQUISITIONS identifier. | — |
| name | ACQUISITIONS identifier. | — |
| type | ACQUISITIONS identifier. | — |
| acquiree_ | ACQUISITIONS acquiree_ | — |
| acquiree_ | ACQUISITIONS acquiree_ | — |
| acquiree_ acquiree_ acquiree_ acquiree_ | ACQUISITIONS acquiree_ | — |
| acquirer_ | ACQUISITIONS acquirer_ | — |
| acquirer_ | ACQUISITIONS "https: | concatenate the host url and the remainder of the permalink path |
| acquirer_ | ACQUISITIONS acquirer_ | — |
| acquirer_ acquirer_ acquirer_ acquirer_ | ACQUISITIONS acquirer_ | — |
| acquisition_ | ACQUISITIONS acquisition_ | — |
| acquired_ | ACQUISITIONS announced_ | — |
| created_ | ACQUISITIONS created_ | — |
| price | ACQUISITIONS price. | — |
| price_ | ACQUISITIONS price. | — |
| price_ | ACQUISITIONS price. | — |
| updated_ | ACQUISITIONS updated_ | — |
| cb_ | ACQUISITIONS "https: | concatenate the host url and the remainder of the permalink path |
| rank | ACQUISITIONS rank_ | — |
| acquiree_ | ACQUISITIONS "https: | concatenate the host url and the remainder of the permalink path |
category_groups
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | CATEGORY identifier. | — |
| permalink | CATEGORY identifier. | — |
| type | CATEGORY identifier. | — |
| created_ | CATEGORY created_ | — |
| name | CATEGORY name | — |
| updated_ | CATEGORY updated_ | — |
| cb_ | CATEGORY "https: | concatenate the host url and the remainder of the permalink path |
| rank | CATEGORY N/ | The current v4 schema does not expose a rank field for this collection, so there is no direct replacement. Bare rank represents global rank across ranked entity types and should not be treated as an entity-specific rank. |
| category_ | CATEGORY category_ | Flatten category_groups[].value to a comma-separated list. |
degrees
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | DEGREES identifier. | — |
| permalink | DEGREES identifier. | — |
| name | DEGREES identifier. | — |
| completed_ | DEGREES completed_ | — |
| created_ | DEGREES created_ | — |
| person_ | DEGREES person_ | — |
| person_ | DEGREES person_ | — |
| institution_ | DEGREES school_ | — |
| institution_ | DEGREES school_ | — |
| started_ | DEGREES started_ | — |
| subject | DEGREES subject | — |
| degree_ | DEGREES type_ | — |
| updated_ | DEGREES updated_ | — |
| type | DEGREES entity_ | Legacy type identified the entity represented by the row. The current entity_def_id value is "degree". |
| cb_ | DEGREES N/ | Intentionally removed because Degree records no longer have standalone, linkable pages on the Crunchbase website. |
| rank | DEGREES N/ | The current v4 schema does not expose a rank field for this collection, so there is no direct replacement. Bare rank represents global rank across ranked entity types and should not be treated as an entity-specific rank. |
| is_ | DEGREES completed_ | Use completed_on as the practical replacement. A populated completed_on.value confirms completion; a missing date may mean incomplete or unavailable data, so this is not a perfectly equivalent boolean. |
event_appearances
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | EVENT_ identifier. | — |
| permalink | EVENT_ identifier. | — |
| name | EVENT_ identifier. | — |
| type | EVENT_ identifier. | — |
| created_ | EVENT_ created_ | — |
| event_ | EVENT_ event_ | — |
| event_ | EVENT_ event_ | — |
| appearance_ | EVENT_ appearance_ | — |
| participant_ | EVENT_ participant_ | — |
| participant_ | EVENT_ participant_ | — |
| short_ | EVENT_ short_ | — |
| updated_ | EVENT_ updated_ | — |
| cb_ | EVENT_ "https: | concatenate the host url and the remainder of the permalink path |
| rank | EVENT_ N/ | The current v4 schema does not expose a rank field for this collection, so there is no direct replacement. Bare rank represents global rank across ranked entity types and should not be treated as an entity-specific rank. |
| participant_ | EVENT_ participant_ | The participant's entity type is available in the structured participant_identifier; observed values include "organization" and "person". |
events
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | EVENTS identifier. | — |
| permalink | EVENTS identifier. | — |
| name | EVENTS identifier. | — |
| created_ | EVENTS created_ | — |
| description | EVENTS description | — |
| ended_ | EVENTS ends_ | — |
| type | EVENTS event_ | — |
| event_ | EVENTS event_ | — |
| logo_ | EVENTS image_ | — |
| country_ state_ region city | EVENTS location_ | — |
| registration_ | EVENTS registration_ | — |
| short_ | EVENTS short_ | — |
| started_ | EVENTS starts_ | — |
| updated_ | EVENTS updated_ | — |
| venue_ | EVENTS venue_ | — |
| rank | EVENTS rank | — |
| cb_ | EVENTS "https: | concatenate the host url and the remainder of the permalink path |
| event_ | EVENT_ appearance_ | Derive an event's roles by joining Event Appearances on event_identifier and aggregating appearance_type values such as speaker, sponsor, and exhibitor. |
funding_rounds
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | FUNDING_ identifier. | — |
| permalink | FUNDING_ identifier. | — |
| name | FUNDING_ identifier. | — |
| announced_ | FUNDING_ announced_ | — |
| created_ | FUNDING_ created_ | — |
| org_ | FUNDING_ funded_ | — |
| org_ | FUNDING_ funded_ | — |
| country_ state_ region city | FUNDING_ funded_ | — |
| investment_ | FUNDING_ investment_ | — |
| lead_ | FUNDING_ lead_ | — |
| raised_ | FUNDING_ money_ | — |
| raised_ | FUNDING_ money_ | — |
| raised_ | FUNDING_ money_ | — |
| investor_ | FUNDING_ num_ | — |
| post_ | FUNDING_ post_ | — |
| post_ | FUNDING_ post_ | — |
| post_ | FUNDING_ post_ | — |
| rank | FUNDING_ rank_ | — |
| updated_ | FUNDING_ updated_ | — |
| type | FUNDING_ "funding_ | The value is "funding_round" for all fields in the legacy csv |
| cb_ | FUNDING_ "https: | concatenate the host url and the remainder of the permalink path |
funds
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | FUNDS identifier. | — |
| permalink | FUNDS identifier. | — |
| name | FUNDS identifier. | — |
| announced_ | FUNDS announced_ | — |
| created_ | FUNDS created_ | — |
| entity_ | FUNDS owner_ | — |
| entity_ | FUNDS owner_ | — |
| raised_ | FUNDS money_ | — |
| raised_ | FUNDS money_ | — |
| raised_ | FUNDS money_ | — |
| updated_ | FUNDS updated_ | — |
| type | FUNDS "fund" | The value is "fund" for all fields in the legacy csv |
| cb_ | FUNDS "https: | concatenate the host url and the remainder of the permalink path |
| rank | FUNDS rank | — |
| entity_ | FUNDS owner_ | — |
investment_partners
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | investments uuid | — |
| name | investments identifier. | — |
| type | investments "investment" | The value is "investment" for all fields in the legacy csv |
| permalink | investments identifier. | — |
| cb_ | investments "https: | concatenate the host url and the remainder of the permalink path |
| rank | investments N/ | The current v4 schema does not expose a rank field for this collection, so there is no direct replacement. Bare rank represents global rank across ranked entity types and should not be treated as an entity-specific rank. |
| created_ | investments created_ | — |
| updated_ | investments updated_ | — |
| funding_ | investments funding_ | — |
| funding_ | investments funding_ | — |
| investor_ | investments investor_ | — |
| investor_ | investments investor_ | — |
| partner_ | investments partner_ | The "investment_partners" legacy table should be derived from the "investments" table, filtered to include only rows where partner_identifiers is not null. |
| partner_ | investments partner_ | — |
investments
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | investments uuid | — |
| name | investments identifier. | — |
| type | investments "investment" | — |
| permalink | investments identifier. | — |
| cb_ | investments "https: | — |
| rank | investments N/ | The current v4 schema does not expose a rank field for this collection, so there is no direct replacement. Bare rank represents global rank across ranked entity types and should not be treated as an entity-specific rank. |
| created_ | investments created_ | — |
| updated_ | investments updated_ | — |
| funding_ | investments funding_ | — |
| funding_ | investments funding_ | — |
| investor_ | investments investor_ | — |
| investor_ | investments investor_ | — |
| investor_ | investments investor_ | — |
| is_ | investments is_ | — |
investors
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | people, organizations uuid | — |
| name | people, organizations identifier. | — |
| type | people, organizations value = "organization" (if from organizations table) value = "person" (if from people table) | — |
| permalink | people, organizations identifier. | — |
| cb_ | people, organizations "https: "https: | — |
| rank | people, organizations rank | — |
| created_ | people, organizations created_ | — |
| updated_ | people, organizations updated_ | — |
| roles | people, organizations facet_ | Use the relevant classifications in facet_ids, such as investor, company, and school. For the legacy Investors table, retain records with the investor facet. |
| domain | people, organizations website_ | — |
| country_ state_ region city | people, organizations location_ | — |
| investor_ | people, organizations investor_ | — |
| investment_ | people, organizations num_ | — |
| total_ | people, organizations funding_ | — |
| total_ | people, organizations funding_ | — |
| total_ | people, organizations funding_ | — |
| founded_ | people, organizations founded_ | — |
| closed_ | people, organizations closed_ | — |
| facebook_ | people, organizations facebook. | — |
| linkedin_ | people, organizations linkedin. | — |
| twitter_ | people, organizations twitter. | — |
| logo_ | people, organizations image_ | — |
ipos
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | IPOS identifier. | — |
| permalink | IPOS identifier. | — |
| name | IPOS identifier. | — |
| money_ | IPOS amount_ | — |
| money_ | IPOS amount_ | — |
| money_ | IPOS amount_ | — |
| created_ | IPOS created_ | — |
| org_ | IPOS organization_ | — |
| org_ | IPOS "https: | concatenate the host url and the remainder of the permalink path |
| org_ | IPOS organization_ | — |
| share_ | IPOS share_ | — |
| share_ | IPOS share_ | — |
| share_ | IPOS share_ | — |
| stock_ | IPOS stock_ | — |
| stock_ | IPOS stock_ | — |
| updated_ | IPOS updated_ | — |
| valuation_ | IPOS valuation. | — |
| valuation_ | IPOS valuation. | — |
| valuation_ | IPOS valuation. | — |
| went_ | IPOS went_ | — |
| type | IPOS entity_ | Legacy type identified the entity represented by the row. The current entity_def_id value is "ipo". |
| cb_ | IPOS "https: | concatenate the host url and the remainder of the permalink path |
| rank | IPOS rank | This field is currently available in the v4 API and CSV products. Use rank for direct legacy-field parity; use rank_ipo when an IPO-specific comparison is desired. |
| country_ | LOCATIONS country_ | Join IPO.organization_identifier to Organizations, use the organization's location_identifiers to resolve the country Location, then read Locations.country_code. |
| state_ | LOCATIONS region_ | Join IPO.organization_identifier to Organizations, use the organization's location_identifiers to resolve the region Location, then read Locations.region_code (legacy state_code). |
| region | ORGANIZATIONS location_ | Join IPO.organization_identifier to Organizations and select the organization location_identifier whose location_type is "region". |
| city | ORGANIZATIONS location_ | Join IPO.organization_identifier to Organizations and select the organization location_identifier whose location_type is "city". |
jobs
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | JOBS identifier. | — |
| permalink | JOBS identifier. | — |
| name | JOBS identifier. | — |
| created_ | JOBS created_ | — |
| ended_ | JOBS ended_ | — |
| is_ | JOBS is_ | — |
| job_ | JOBS job_ | — |
| org_ | JOBS organization_ | — |
| org_ | JOBS organization_ | — |
| person_ | JOBS person_ | — |
| person_ | JOBS person_ | — |
| started_ | JOBS started_ | — |
| title | JOBS title | — |
| updated_ | JOBS updated_ | — |
| cb_ | JOBS "https: | concatenate the host url and the remainder of the permalink path |
| rank | JOBS N/ | The current v4 schema does not expose a rank field for this collection, so there is no direct replacement. Bare rank represents global rank across ranked entity types and should not be treated as an entity-specific rank. |
org_parents
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | ORGANIZATIONS uuid | — |
| name | ORGANIZATIONS identifier. | — |
| type | ORGANIZATIONS "organization" | — |
| permalink | ORGANIZATIONS identifier. | — |
| cb_ | ORGANIZATIONS "https: | concatenate the host url and the remainder of the permalink path |
| rank | ORGANIZATIONS rank_ | — |
| created_ | ORGANIZATIONS created_ | — |
| updated_ | ORGANIZATIONS updated_ | — |
| parent_ | ORGANIZATIONS owner_ | — |
| parent_ | ORGANIZATIONS owner_ | — |
organization_descriptions
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| description | ORGANIZATIONS description | — |
| rank | ORGANIZATIONS rank_ | — |
| uuid | ORGANIZATIONS uuid | — |
| name | ORGANIZATIONS identifier. | — |
| type | ORGANIZATIONS "organization" | — |
| permalink | ORGANIZATIONS identifier. | — |
| cb_ | ORGANIZATIONS "https: | concatenate the host url and the remainder of the permalink path |
| created_ | ORGANIZATIONS created_ | — |
| updated_ | ORGANIZATIONS updated_ | — |
organizations
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | ORGANIZATIONS identifier. | — |
| permalink | ORGANIZATIONS identifier. | — |
| name | ORGANIZATIONS identifier. | — |
| alias1 alias2 alias3 | ORGANIZATIONS aliases | — |
| category_ | ORGANIZATIONS categories. | — |
| category_ | ORGANIZATIONS category_ | Flatten category_groups[].value to a comma-separated list. |
| closed_ | ORGANIZATIONS closed_ | — |
| type | ORGANIZATIONS company_ | — |
| ORGANIZATIONS contact_ | — | |
| created_ | ORGANIZATIONS created_ | — |
| facebook_ | ORGANIZATIONS | — |
| founded_ | ORGANIZATIONS founded_ | — |
| total_ | ORGANIZATIONS funding_ | — |
| total_ | ORGANIZATIONS funding_ | — |
| total_ | ORGANIZATIONS funding_ | — |
| logo_ | ORGANIZATIONS image_ | — |
| last_ | ORGANIZATIONS last_ | — |
| legal_ | ORGANIZATIONS legal_ | — |
| linkedin_ | ORGANIZATIONS | — |
| country_ state_ region city | ORGANIZATIONS location_ | — |
| employee_ | ORGANIZATIONS num_ | — |
| num_ | ORGANIZATIONS num_ | — |
| num_ | ORGANIZATIONS num_ | — |
| phone | ORGANIZATIONS phone_ | — |
| rank | ORGANIZATIONS rank | — |
| short_ | ORGANIZATIONS short_ | — |
| status | ORGANIZATIONS status | — |
| twitter_ | ORGANIZATIONS | — |
| updated_ | ORGANIZATIONS updated_ | — |
| homepage_ | ORGANIZATIONS website | — |
| cb_ | ORGANIZATIONS "https: | — |
| roles | ORGANIZATIONS facet_ | Use the relevant organization classifications in facet_ids, such as company, investor, and school. facet_ids preserves every applicable role. |
| domain | ORGANIZATIONS website_ | Derive the legacy domain value by extracting the hostname from website_url. |
| address | ADDRESSES street_ street_ | Retrieve the headquarters_address card and join street_1 and street_2 when present. |
| postal_ | ADDRESSES postal_ | Retrieve postal_code from the headquarters_address card. |
| primary_ | ORGANIZATIONS facet_ | The legacy single primary_role was replaced by the more complete multi-value facet_ids classification. Use the relevant values such as company, investor, and school. |
people
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | PEOPLE identifier. | — |
| created_ | PEOPLE created_ | — |
| updated_ | PEOPLE updated_ | — |
| facebook_ | PEOPLE | — |
| first_ | PEOPLE first_ | — |
| gender | PEOPLE gender | — |
| logo_ | PEOPLE image_ | — |
| last_ | PEOPLE last_ | — |
| linkedin_ | PEOPLE | — |
| country_ state_ region city | PEOPLE location_ | — |
| name | PEOPLE name | — |
| featured_ | PEOPLE primary_ | — |
| featured_ | PEOPLE primary_ | — |
| featured_ | PEOPLE primary_ | — |
| rank | PEOPLE rank | — |
| twitter_ | PEOPLE | — |
| type | PEOPLE entity_ | Legacy type identified the entity represented by the row. The current entity_def_id value is "person". |
| permalink | PEOPLE permalink | This field is currently available in the v4 API and CSV products; the prior mapping note was outdated. |
| cb_ | PEOPLE "https: | concatenate the host url and the remainder of the permalink path |
people_descriptions
| Legacy field | Current mapping | Migration notes |
|---|---|---|
| uuid | PEOPLE uuid | — |
| name | PEOPLE identifier. | — |
| type | PEOPLE "Person" | — |
| permalink | PEOPLE identifier. | — |
| cb_ | PEOPLE "https: | concatenate the host url and the remainder of the permalink path |
| rank | PEOPLE rank_ | — |
| created_ | PEOPLE created_ | — |
| updated_ | PEOPLE updated_ | — |
| description | PEOPLE description | — |
Advanced migration patterns
The mappings above are usually direct field renames. This section covers the exceptions that require interpreting a structured value, combining collections, traversing a relationship, aggregating records, or deriving a value.
Before you run these examples
- Replace values in angle brackets, such as
<IPO_ID>, with a UUID or permalink returned by Crunchbase.- Replace
YOUR_API_KEYwith your API key. Keep the key in theX-cb-user-keyheader; do not embed it in saved code or documentation.- Fields are optional. Handle missing objects and empty arrays in your transformation code.
- Card responses return at most 100 records per request. Use
after_idto paginate when a card contains more records.
Exceptions covered
| Legacy fields | Pattern |
|---|---|
degrees.type, ipos.type, people.type, event_appearances.participant_type | Read the entity type from entity_def_id or a structured identifier. |
degrees.is_completed | Derive completion state from completed_on. |
investors.roles, organizations.roles, organizations.primary_role | Use the multi-value facet_ids classification. |
category_groups.category_groups_list, organizations.category_groups_list | Flatten the value members of the multi-value category_groups identifier list. |
investors legacy table | Combine qualifying Organizations and People records. |
events.event_roles | Traverse Event Appearances and aggregate appearance_type. |
investment_partners legacy table | Retrieve Investments and retain records with partner_identifiers. |
ipos.country_code, ipos.state_code, ipos.region, ipos.city | Traverse IPO → Organization → Location. |
organizations.address, organizations.postal_code | Retrieve the Organization’s headquarters_address card. |
| Legacy location columns on other tables | Select values from structured location identifiers by location_type. |
organizations.domain | Extract the hostname from website_url. |
Legacy cb_url fields that still have profile pages | Construct the URL from the returned permalink. |
The generic rank fields marked N/A and degrees.cb_url are not included below because the current v4 schema provides no direct replacement that an API traversal could reproduce.
Read entity types and degree completion
Specific field mappings
| Legacy field | Current field or expression |
|---|---|
degrees.type | DEGREES.entity_def_id |
ipos.type | IPOS.entity_def_id |
people.type | PEOPLE.entity_def_id |
event_appearances.participant_type | EVENT_APPEARANCES.participant_identifier.entity_def_id |
degrees.is_completed | DEGREES.completed_on.value as a practical completion signal; absence is not conclusive |
The old type columns described the entity represented by the row. In v4, read entity_def_id. For participant type, read participant_identifier.entity_def_id. For degree completion, a populated completed_on.value confirms completion. A missing value may mean either incomplete or unavailable data, so it should not automatically be treated as a definitive false.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/degrees/<DEGREE_ID>?field_ids=entity_def_id,completed_on' \
--header 'X-cb-user-key: YOUR_API_KEY'Interpret the response as follows:
legacy degrees.type = properties.entity_def_id
legacy degrees.is_completed = true when properties.completed_on.value is populated
missing completed_on.value = unknown or incomplete; not conclusively falseFor an Event Appearance:
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/event_appearances/<APPEARANCE_ID>?field_ids=appearance_type,participant_identifier' \
--header 'X-cb-user-key: YOUR_API_KEY'legacy participant_type = properties.participant_identifier.entity_def_idRebuild roles with facet_ids
facet_idsSpecific field mappings
| Legacy field | Current field |
|---|---|
investors.roles | PEOPLE.facet_ids or ORGANIZATIONS.facet_ids |
organizations.roles | ORGANIZATIONS.facet_ids |
organizations.primary_role | ORGANIZATIONS.facet_ids |
facet_ids can contain more than one classification, so it replaces both the old role list and the lossy single primary_role value.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/organizations/crunchbase?field_ids=identifier,facet_ids' \
--header 'X-cb-user-key: YOUR_API_KEY'legacy organizations.roles = every applicable value in properties.facet_ids
legacy organizations.primary_role = do not choose layout_id; retain the applicable facet_ids valuesRebuild the legacy Investors table
Every field under the legacy investors table comes from the union of qualifying People and Organizations records. After filtering both collections to the investor facet, apply the field mapping shown in the table above.
To rebuild the legacy Investors table, request qualifying Organizations and People separately, then union the results. Retain only records whose facet_ids include the investor classification.
curl --request POST \
--url 'https://api.crunchbase.com/v4/data/searches/organizations' \
--header 'X-cb-user-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"field_ids": ["identifier", "facet_ids", "investor_type", "num_investments"],
"query": [{
"type": "predicate",
"field_id": "facet_ids",
"operator_id": "includes",
"values": ["investor"]
}],
"limit": 1000
}'
curl --request POST \
--url 'https://api.crunchbase.com/v4/data/searches/people' \
--header 'X-cb-user-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"field_ids": ["identifier", "facet_ids", "investor_type", "num_investments"],
"query": [{
"type": "predicate",
"field_id": "facet_ids",
"operator_id": "includes",
"values": ["investor"]
}],
"limit": 1000
}'Paginate each search independently with after_id, then concatenate the two result sets.
Rebuild events.event_roles
events.event_rolesSpecific field mapping: events.event_roles → distinct values from EVENT_APPEARANCES.appearance_type, joined where event_identifier identifies the Event.
Event roles belong to Event Appearance records, not the Event record itself. Retrieve the Event’s appearances card and collect the distinct appearance_type values.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/events/<EVENT_ID>/cards/appearances?card_field_ids=appearance_type,participant_identifier&limit=100' \
--header 'X-cb-user-key: YOUR_API_KEY'For example, appearances with appearance_type values of speaker, sponsor, and exhibitor produce those three values for the legacy event_roles field. The same response provides each participant’s legacy type through participant_identifier.entity_def_id.
If the card contains more than 100 records, take the final record UUID from the response and send the next request with &after_id=<LAST_UUID>.
Rebuild the legacy investment_partners table
investment_partners tableEvery legacy investment_partners field is sourced from INVESTMENTS. In particular:
| Legacy field | Current field |
|---|---|
investment_partners.partner_uuid | INVESTMENTS.partner_identifiers[].uuid |
investment_partners.partner_name | INVESTMENTS.partner_identifiers[].value |
Other legacy investment_partners fields | Use their corresponding INVESTMENTS field from the mapping table. |
The old table is a filtered view of Investments. Retrieve the required investment fields and retain records where partner_identifiers is not empty. Emit one output row for each partner identifier when an investment has multiple partners.
curl --request POST \
--url 'https://api.crunchbase.com/v4/data/searches/investments' \
--header 'X-cb-user-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"field_ids": [
"identifier",
"funding_round_identifier",
"investor_identifier",
"partner_identifiers",
"created_at",
"updated_at"
],
"query": [],
"limit": 1000
}'legacy partner_uuid = each properties.partner_identifiers[].uuid
legacy partner_name = each properties.partner_identifiers[].valueUse after_id to paginate until the complete Investments collection has been processed.
Traverse IPO geography
Specific field mappings
| Legacy field | Current field or traversal |
|---|---|
ipos.city | IPO organization_identifier → Organization location_identifiers[location_type=city].value |
ipos.region | IPO organization_identifier → Organization location_identifiers[location_type=region].value |
ipos.country_code | IPO → Organization → country Location → LOCATIONS.country_code |
ipos.state_code | IPO → Organization → region Location → LOCATIONS.region_code |
IPO geography belongs to the organization that completed the IPO. The traversal is IPO → Organization → Location.
1. Retrieve the IPO’s organization identifier.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/ipos/<IPO_ID>?field_ids=identifier,organization_identifier' \
--header 'X-cb-user-key: YOUR_API_KEY'2. Use organization_identifier.uuid or .permalink to retrieve the organization’s locations.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/organizations/<ORGANIZATION_ID>?field_ids=identifier,location_identifiers' \
--header 'X-cb-user-key: YOUR_API_KEY'Select the identifiers by location_type:
legacy ipos.city = location_identifiers[] where location_type == "city" → value
legacy ipos.region = location_identifiers[] where location_type == "region" → value3. Look up the country and region Location records for their codes.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/locations/<COUNTRY_LOCATION_ID>?field_ids=country_code' \
--header 'X-cb-user-key: YOUR_API_KEY'
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/locations/<REGION_LOCATION_ID>?field_ids=region_code' \
--header 'X-cb-user-key: YOUR_API_KEY'legacy ipos.country_code = country Location properties.country_code
legacy ipos.state_code = region Location properties.region_codeRetrieve organization street address and postal code
Specific field mappings
| Legacy field | Current field |
|---|---|
organizations.address | ADDRESSES.street_1 plus ADDRESSES.street_2 |
organizations.postal_code | ADDRESSES.postal_code |
Use the headquarters_address card rather than attempting to reconstruct the street address from location_identifiers.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/organizations/<ORGANIZATION_ID>/cards/headquarters_address?card_field_ids=street_1,street_2,postal_code&limit=1' \
--header 'X-cb-user-key: YOUR_API_KEY'legacy organizations.address = join street_1 and street_2 when present
legacy organizations.postal_code = postal_codeInterpret other structured location fields
Specific fields covered: the combined legacy country_code, state_code, region, and city rows under Acquisitions, Events, Funding Rounds, Investors, Organizations, and People. Use the exact structured location field named in each mapping-table row, then select identifiers by location_type.
Several legacy tables stored country_code, state_code, region, and city as separate columns. The replacement field is often a list such as location_identifiers, acquiree_locations, or funded_organization_location. Do not substitute location_group_identifiers: that field describes broader regional groups rather than the entity’s city, administrative region, and country.
Request the mapped location field on the relevant entity, then select the array item whose location_type matches the legacy column. If you need country_code or region_code and it is not embedded in that response, look up the selected Location identifier using the Location call shown in the IPO example.
Flatten multi-value identifier lists
Specific field mappings
| Legacy field | Current field or expression |
|---|---|
category_groups.category_groups_list | CATEGORY.category_groups[].value joined with commas |
organizations.category_groups_list | ORGANIZATIONS.category_groups[].value joined with commas |
The current category_groups field is an array of structured identifiers. Preserve every array element and join its value members in the order returned when recreating the legacy comma-separated column.
For category rows:
curl --request POST \
--url 'https://api.crunchbase.com/v4/data/searches/categories' \
--header 'X-cb-user-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"field_ids": ["identifier", "category_groups"],
"query": [],
"limit": 1000
}'For an organization:
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/organizations/<ORGANIZATION_ID>?field_ids=identifier,category_groups' \
--header 'X-cb-user-key: YOUR_API_KEY'legacy category_groups_list = properties.category_groups[].value joined with ","Derive legacy domain fields
Specific field mappings
| Legacy field | Current field or expression |
|---|---|
organizations.domain | hostname extracted from ORGANIZATIONS.website_url |
investors.domain | hostname extracted from the qualifying Person or Organization website_url, when populated |
Request website_url, then parse its hostname. Do not remove subdomains unless your application explicitly requires a registrable root domain.
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/organizations/crunchbase?field_ids=website_url' \
--header 'X-cb-user-key: YOUR_API_KEY'JavaScript example:
const websiteUrl = response.properties.website_url;
const legacyDomain = websiteUrl ? new URL(websiteUrl).hostname : null;Construct legacy Crunchbase URLs
Specific fields covered: every legacy field ending in cb_url, including entity URLs such as acquisitions.cb_url and relationship URLs such as acquisitions.acquirer_cb_url. Use the exact identifier/permalink expression and website path shown in the corresponding mapping-table row. degrees.cb_url is the exception and cannot be reconstructed.
For entities that still have linkable Crunchbase profile pages, build the URL from the returned permalink. For example:
curl --silent --show-error \
'https://api.crunchbase.com/v4/data/entities/acquisitions/<ACQUISITION_ID>?field_ids=identifier' \
--header 'X-cb-user-key: YOUR_API_KEY'const permalink = response.properties.identifier.permalink;
const legacyCbUrl = `https://www.crunchbase.com/acquisition/${permalink}`;Use the entity path documented in the mapping table (organization, person, funding_round, ipo, and so on). Degree records are the exception: they no longer have standalone linkable profile pages, so degrees.cb_url cannot be reconstructed.
Updated about 11 hours ago

