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/A identifies 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 fieldCurrent mappingMigration notes
uuidACQUISITIONS
identifier.uuid
—
permalinkACQUISITIONS
identifier.permalink
—
nameACQUISITIONS
identifier.value
—
typeACQUISITIONS
identifier.entity_def_id
—
acquiree_uuidACQUISITIONS
acquiree_identifier.uuid
—
acquiree_nameACQUISITIONS
acquiree_identifier.value
—
acquiree_country_code
acquiree_state_code
acquiree_region
acquiree_city
ACQUISITIONS
acquiree_locations.value
—
acquirer_uuidACQUISITIONS
acquirer_identifier.uuid
—
acquirer_cb_urlACQUISITIONS
"https://www.crunchbase.com/organization/" + acquirer_identifier.permalink
concatenate the host url and the remainder of the permalink path
acquirer_nameACQUISITIONS
acquirer_identifier.value
—
acquirer_country_code
acquirer_state_code
acquirer_region
acquirer_city
ACQUISITIONS
acquirer_locations.value
—
acquisition_typeACQUISITIONS
acquisition_type
—
acquired_onACQUISITIONS
announced_on.value
—
created_atACQUISITIONS
created_at
—
priceACQUISITIONS
price.value
—
price_currency_codeACQUISITIONS
price.currency
—
price_usdACQUISITIONS
price.value_usd
—
updated_atACQUISITIONS
updated_at
—
cb_urlACQUISITIONS
"https://www.crunchbase.com/acquisition/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankACQUISITIONS
rank_acquisition
—
acquiree_cb_urlACQUISITIONS
"https://www.crunchbase.com/organization/" + acquiree_identifier.permalink
concatenate the host url and the remainder of the permalink path

Back to table index

category_groups

Legacy fieldCurrent mappingMigration notes
uuidCATEGORY
identifier.uuid
—
permalinkCATEGORY
identifier.permalink
—
typeCATEGORY
identifier.entity_def_id
—
created_atCATEGORY
created_at
—
nameCATEGORY
name
—
updated_atCATEGORY
updated_at
—
cb_urlCATEGORY
"https://www.crunchbase.com/category/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankCATEGORY
N/A
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_groups_listCATEGORY
category_groups.value
Flatten category_groups[].value to a comma-separated list.

Back to table index

degrees

Legacy fieldCurrent mappingMigration notes
uuidDEGREES
identifier.uuid
—
permalinkDEGREES
identifier.permalink
—
nameDEGREES
identifier.value
—
completed_onDEGREES
completed_on.value
—
created_atDEGREES
created_at
—
person_uuidDEGREES
person_identifier.uuid
—
person_nameDEGREES
person_identifier.value
—
institution_uuidDEGREES
school_identifier.uuid
—
institution_nameDEGREES
school_identifier.value
—
started_onDEGREES
started_on.value
—
subjectDEGREES
subject
—
degree_typeDEGREES
type_name
—
updated_atDEGREES
updated_at
—
typeDEGREES
entity_def_id
Legacy type identified the entity represented by the row. The current entity_def_id value is "degree".
cb_urlDEGREES
N/A
Intentionally removed because Degree records no longer have standalone, linkable pages on the Crunchbase website.
rankDEGREES
N/A
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_completedDEGREES
completed_on.value
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.

Back to table index

event_appearances

Legacy fieldCurrent mappingMigration notes
uuidEVENT_APPEARANCES
identifier.uuid
—
permalinkEVENT_APPEARANCES
identifier.permalink
—
nameEVENT_APPEARANCES
identifier.value
—
typeEVENT_APPEARANCES
identifier.entity_def_id
—
created_atEVENT_APPEARANCES
created_at
—
event_uuidEVENT_APPEARANCES
event_identifier.uuid
—
event_nameEVENT_APPEARANCES
event_identifier.value
—
appearance_typeEVENT_APPEARANCES
appearance_type
—
participant_uuidEVENT_APPEARANCES
participant_identifier.uuid
—
participant_nameEVENT_APPEARANCES
participant_identifier.value
—
short_descriptionEVENT_APPEARANCES
short_description
—
updated_atEVENT_APPEARANCES
updated_at
—
cb_urlEVENT_APPEARANCES
"https://www.crunchbase.com/event_appearance/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankEVENT_APPEARANCES
N/A
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_typeEVENT_APPEARANCES
participant_identifier.entity_def_id
The participant's entity type is available in the structured participant_identifier; observed values include "organization" and "person".

Back to table index

events

Legacy fieldCurrent mappingMigration notes
uuidEVENTS
identifier.uuid
—
permalinkEVENTS
identifier.permalink
—
nameEVENTS
identifier.value
—
created_atEVENTS
created_at
—
descriptionEVENTS
description
—
ended_onEVENTS
ends_on
—
typeEVENTS
event_type
—
event_urlEVENTS
event_url
—
logo_urlEVENTS
image_url
—
country_code
state_code
region
city
EVENTS
location_identifiers.value
—
registration_urlEVENTS
registration_url
—
short_descriptionEVENTS
short_description
—
started_onEVENTS
starts_on
—
updated_atEVENTS
updated_at
—
venue_nameEVENTS
venue_name
—
rankEVENTS
rank
—
cb_urlEVENTS
"https://www.crunchbase.com/event/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
event_rolesEVENT_APPEARANCES
appearance_type
Derive an event's roles by joining Event Appearances on event_identifier and aggregating appearance_type values such as speaker, sponsor, and exhibitor.

Back to table index

funding_rounds

Legacy fieldCurrent mappingMigration notes
uuidFUNDING_ROUNDS
identifier.uuid
—
permalinkFUNDING_ROUNDS
identifier.permalink
—
nameFUNDING_ROUNDS
identifier.value
—
announced_onFUNDING_ROUNDS
announced_on
—
created_atFUNDING_ROUNDS
created_at
—
org_uuidFUNDING_ROUNDS
funded_organization_identifier.uuid
—
org_nameFUNDING_ROUNDS
funded_organization_identifier.value
—
country_code
state_code
region
city
FUNDING_ROUNDS
funded_organization_location.value
—
investment_typeFUNDING_ROUNDS
investment_type
—
lead_investor_uuidsFUNDING_ROUNDS
lead_investor_identifiers.uuid
—
raised_amountFUNDING_ROUNDS
money_raised.value
—
raised_amount_currency_codeFUNDING_ROUNDS
money_raised.currency
—
raised_amount_usdFUNDING_ROUNDS
money_raised.value_usd
—
investor_countFUNDING_ROUNDS
num_investors
—
post_money_valuationFUNDING_ROUNDS
post_money_valuation.value
—
post_money_valuation_currency_codeFUNDING_ROUNDS
post_money_valuation.currency
—
post_money_valuation_usdFUNDING_ROUNDS
post_money_valuation.value_usd
—
rankFUNDING_ROUNDS
rank_funding_round
—
updated_atFUNDING_ROUNDS
updated_at
—
typeFUNDING_ROUNDS
"funding_round"
The value is "funding_round" for all fields in the legacy csv
cb_urlFUNDING_ROUNDS
"https://www.crunchbase.com/funding_round/" + identifier.permalink
concatenate the host url and the remainder of the permalink path

Back to table index

funds

Legacy fieldCurrent mappingMigration notes
uuidFUNDS
identifier.uuid
—
permalinkFUNDS
identifier.permalink
—
nameFUNDS
identifier.value
—
announced_onFUNDS
announced_on
—
created_atFUNDS
created_at
—
entity_uuidFUNDS
owner_identifier.uuid
—
entity_nameFUNDS
owner_identifier.value
—
raised_amountFUNDS
money_raised.value
—
raised_amount_currency_codeFUNDS
money_raised.currency
—
raised_amount_usdFUNDS
money_raised.value_usd
—
updated_atFUNDS
updated_at
—
typeFUNDS
"fund"
The value is "fund" for all fields in the legacy csv
cb_urlFUNDS
"https://www.crunchbase.com/fund/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankFUNDS
rank
—
entity_typeFUNDS
owner_identifier.entity_def_id
—

Back to table index

investment_partners

Legacy fieldCurrent mappingMigration notes
uuidinvestments
uuid
—
nameinvestments
identifier.value
—
typeinvestments
"investment"
The value is "investment" for all fields in the legacy csv
permalinkinvestments
identifier.permalink
—
cb_urlinvestments
"https://www.crunchbase.com/investment/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankinvestments
N/A
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_atinvestments
created_at
—
updated_atinvestments
updated_at
—
funding_round_uuidinvestments
funding_round_identifier.uuid
—
funding_round_nameinvestments
funding_round_identifier.value
—
investor_uuidinvestments
investor_identifier.uuid
—
investor_nameinvestments
investor_identifier.value
—
partner_uuidinvestments
partner_identifiers[].uuid
The "investment_partners" legacy table should be derived from the "investments" table, filtered to include only rows where partner_identifiers is not null.
partner_nameinvestments
partner_identifiers[].value
—

Back to table index

investments

Legacy fieldCurrent mappingMigration notes
uuidinvestments
uuid
—
nameinvestments
identifier.value
—
typeinvestments
"investment"
—
permalinkinvestments
identifier.permalink
—
cb_urlinvestments
"https://www.crunchbase.com/investment/" + identifier.permalink
—
rankinvestments
N/A
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_atinvestments
created_at
—
updated_atinvestments
updated_at
—
funding_round_uuidinvestments
funding_round_identifier.uuid
—
funding_round_nameinvestments
funding_round_identifier.value
—
investor_uuidinvestments
investor_identifier.uuid
—
investor_nameinvestments
investor_identifier.value
—
investor_typeinvestments
investor_type[]
—
is_lead_investorinvestments
is_lead_investor
—

Back to table index

investors

Legacy fieldCurrent mappingMigration notes
uuidpeople, organizations
uuid
—
namepeople, organizations
identifier.value
—
typepeople, organizations
value = "organization" (if from organizations table)
value = "person" (if from people table)
—
permalinkpeople, organizations
identifier.permalink
—
cb_urlpeople, organizations
"https://www.crunchbase.com/organization/" + identifier.permalink (if from organizations table)
"https://www.crunchbase.com/person/" + identifier.permalink (if from people table)
—
rankpeople, organizations
rank
—
created_atpeople, organizations
created_at
—
updated_atpeople, organizations
updated_at
—
rolespeople, organizations
facet_ids
Use the relevant classifications in facet_ids, such as investor, company, and school. For the legacy Investors table, retain records with the investor facet.
domainpeople, organizations
website_url
—
country_code
state_code
region
city
people, organizations
location_identifiers.value
—
investor_typespeople, organizations
investor_type[]
—
investment_countpeople, organizations
num_investments
—
total_funding_usdpeople, organizations
funding_total.value_usd
—
total_fundingpeople, organizations
funding_total.value
—
total_funding_currency_codepeople, organizations
funding_total.currency
—
founded_onpeople, organizations
founded_on.value
—
closed_onpeople, organizations
closed_on.value
—
facebook_urlpeople, organizations
facebook.value
—
linkedin_urlpeople, organizations
linkedin.value
—
twitter_urlpeople, organizations
twitter.value
—
logo_urlpeople, organizations
image_url
—

Back to table index

ipos

Legacy fieldCurrent mappingMigration notes
uuidIPOS
identifier.uuid
—
permalinkIPOS
identifier.permalink
—
nameIPOS
identifier.value
—
money_raisedIPOS
amount_raised.value
—
money_raised_currency_codeIPOS
amount_raised.currency
—
money_raised_usdIPOS
amount_raised.value_usd
—
created_atIPOS
created_at
—
org_uuidIPOS
organization_identifier.uuid
—
org_cb_urlIPOS
"https://www.crunchbase.com/organization/" + organization_identifier.permalink
concatenate the host url and the remainder of the permalink path
org_nameIPOS
organization_identifier.value
—
share_priceIPOS
share_price.value
—
share_price_currency_codeIPOS
share_price.currency
—
share_price_usdIPOS
share_price.value_usd
—
stock_exchange_symbolIPOS
stock_exchange_symbol
—
stock_symbolIPOS
stock_symbol
—
updated_atIPOS
updated_at
—
valuation_priceIPOS
valuation.value
—
valuation_price_currency_codeIPOS
valuation.currency
—
valuation_price_usdIPOS
valuation.value_usd
—
went_public_onIPOS
went_public_on
—
typeIPOS
entity_def_id
Legacy type identified the entity represented by the row. The current entity_def_id value is "ipo".
cb_urlIPOS
"https://www.crunchbase.com/ipo/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankIPOS
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_codeLOCATIONS
country_code
Join IPO.organization_identifier to Organizations, use the organization's location_identifiers to resolve the country Location, then read Locations.country_code.
state_codeLOCATIONS
region_code
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).
regionORGANIZATIONS
location_identifiers.value
Join IPO.organization_identifier to Organizations and select the organization location_identifier whose location_type is "region".
cityORGANIZATIONS
location_identifiers.value
Join IPO.organization_identifier to Organizations and select the organization location_identifier whose location_type is "city".

Back to table index

jobs

Legacy fieldCurrent mappingMigration notes
uuidJOBS
identifier.uuid
—
permalinkJOBS
identifier.permalink
—
nameJOBS
identifier.value
—
created_atJOBS
created_at
—
ended_onJOBS
ended_on.value
—
is_currentJOBS
is_current
—
job_typeJOBS
job_type
—
org_uuidJOBS
organization_identifier.uuid
—
org_nameJOBS
organization_identifier.value
—
person_uuidJOBS
person_identifier.uuid
—
person_nameJOBS
person_identifier.value
—
started_onJOBS
started_on.value
—
titleJOBS
title
—
updated_atJOBS
updated_at
—
cb_urlJOBS
"https://www.crunchbase.com/job/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankJOBS
N/A
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.

Back to table index

org_parents

Legacy fieldCurrent mappingMigration notes
uuidORGANIZATIONS
uuid
—
nameORGANIZATIONS
identifier.value
—
typeORGANIZATIONS
"organization"
—
permalinkORGANIZATIONS
identifier.permalink
—
cb_urlORGANIZATIONS
"https://www.crunchbase.com/organization/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankORGANIZATIONS
rank_org
—
created_atORGANIZATIONS
created_at
—
updated_atORGANIZATIONS
updated_at
—
parent_uuidORGANIZATIONS
owner_identifier.uuid
—
parent_nameORGANIZATIONS
owner_identifier.value
—

Back to table index

organization_descriptions

Legacy fieldCurrent mappingMigration notes
descriptionORGANIZATIONS
description
—
rankORGANIZATIONS
rank_org
—
uuidORGANIZATIONS
uuid
—
nameORGANIZATIONS
identifier.value
—
typeORGANIZATIONS
"organization"
—
permalinkORGANIZATIONS
identifier.permalink
—
cb_urlORGANIZATIONS
"https://www.crunchbase.com/organization/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
created_atORGANIZATIONS
created_at
—
updated_atORGANIZATIONS
updated_at
—

Back to table index

organizations

Legacy fieldCurrent mappingMigration notes
uuidORGANIZATIONS
identifier.uuid
—
permalinkORGANIZATIONS
identifier.permalink
—
nameORGANIZATIONS
identifier.value
—
alias1
alias2
alias3
ORGANIZATIONS
aliases
—
category_listORGANIZATIONS
categories.value
—
category_groups_listORGANIZATIONS
category_groups.value
Flatten category_groups[].value to a comma-separated list.
closed_onORGANIZATIONS
closed_on.value
—
typeORGANIZATIONS
company_type
—
emailORGANIZATIONS
contact_email
—
created_atORGANIZATIONS
created_at
—
facebook_urlORGANIZATIONS
facebook
—
founded_onORGANIZATIONS
founded_on.value
—
total_fundingORGANIZATIONS
funding_total.value
—
total_funding_currency_codeORGANIZATIONS
funding_total.currency
—
total_funding_usdORGANIZATIONS
funding_total.value_usd
—
logo_urlORGANIZATIONS
image_url
—
last_funding_onORGANIZATIONS
last_funding_at
—
legal_nameORGANIZATIONS
legal_name
—
linkedin_urlORGANIZATIONS
linkedin
—
country_code
state_code
region
city
ORGANIZATIONS
location_identifiers.value
—
employee_countORGANIZATIONS
num_employees_enum
—
num_exitsORGANIZATIONS
num_exits
—
num_funding_roundsORGANIZATIONS
num_funding_rounds
—
phoneORGANIZATIONS
phone_number
—
rankORGANIZATIONS
rank
—
short_descriptionORGANIZATIONS
short_description
—
statusORGANIZATIONS
status
—
twitter_urlORGANIZATIONS
twitter
—
updated_atORGANIZATIONS
updated_at
—
homepage_urlORGANIZATIONS
website
—
cb_urlORGANIZATIONS
"https://www.crunchbase.com/organization/" + identifier.permalink
—
rolesORGANIZATIONS
facet_ids
Use the relevant organization classifications in facet_ids, such as company, investor, and school. facet_ids preserves every applicable role.
domainORGANIZATIONS
website_url
Derive the legacy domain value by extracting the hostname from website_url.
addressADDRESSES
street_1
street_2
Retrieve the headquarters_address card and join street_1 and street_2 when present.
postal_codeADDRESSES
postal_code
Retrieve postal_code from the headquarters_address card.
primary_roleORGANIZATIONS
facet_ids
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.

Back to table index

people

Legacy fieldCurrent mappingMigration notes
uuidPEOPLE
identifier.uuid
—
created_atPEOPLE
created_at
—
updated_atPEOPLE
updated_at
—
facebook_urlPEOPLE
facebook
—
first_namePEOPLE
first_name
—
genderPEOPLE
gender
—
logo_urlPEOPLE
image_url
—
last_namePEOPLE
last_name
—
linkedin_urlPEOPLE
linkedin
—
country_code
state_code
region
city
PEOPLE
location_identifiers.value
—
namePEOPLE
name
—
featured_job_titlePEOPLE
primary_job_title
—
featured_job_organization_uuidPEOPLE
primary_organization.uuid
—
featured_job_organization_namePEOPLE
primary_organization.value
—
rankPEOPLE
rank
—
twitter_urlPEOPLE
twitter
—
typePEOPLE
entity_def_id
Legacy type identified the entity represented by the row. The current entity_def_id value is "person".
permalinkPEOPLE
permalink
This field is currently available in the v4 API and CSV products; the prior mapping note was outdated.
cb_urlPEOPLE
"https://www.crunchbase.com/person/" + identifier.permalink
concatenate the host url and the remainder of the permalink path

Back to table index

people_descriptions

Legacy fieldCurrent mappingMigration notes
uuidPEOPLE
uuid
—
namePEOPLE
identifier.value
—
typePEOPLE
"Person"
—
permalinkPEOPLE
identifier.permalink
—
cb_urlPEOPLE
"https://www.crunchbase.com/person/" + identifier.permalink
concatenate the host url and the remainder of the permalink path
rankPEOPLE
rank_person
—
created_atPEOPLE
created_at
—
updated_atPEOPLE
updated_at
—
descriptionPEOPLE
description
—

Back to table index

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_KEY with your API key. Keep the key in the X-cb-user-key header; 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_id to paginate when a card contains more records.

Exceptions covered

Legacy fieldsPattern
degrees.type, ipos.type, people.type, event_appearances.participant_typeRead the entity type from entity_def_id or a structured identifier.
degrees.is_completedDerive completion state from completed_on.
investors.roles, organizations.roles, organizations.primary_roleUse the multi-value facet_ids classification.
category_groups.category_groups_list, organizations.category_groups_listFlatten the value members of the multi-value category_groups identifier list.
investors legacy tableCombine qualifying Organizations and People records.
events.event_rolesTraverse Event Appearances and aggregate appearance_type.
investment_partners legacy tableRetrieve Investments and retain records with partner_identifiers.
ipos.country_code, ipos.state_code, ipos.region, ipos.cityTraverse IPO → Organization → Location.
organizations.address, organizations.postal_codeRetrieve the Organization’s headquarters_address card.
Legacy location columns on other tablesSelect values from structured location identifiers by location_type.
organizations.domainExtract the hostname from website_url.
Legacy cb_url fields that still have profile pagesConstruct 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 fieldCurrent field or expression
degrees.typeDEGREES.entity_def_id
ipos.typeIPOS.entity_def_id
people.typePEOPLE.entity_def_id
event_appearances.participant_typeEVENT_APPEARANCES.participant_identifier.entity_def_id
degrees.is_completedDEGREES.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 false

For 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_id

Rebuild roles with facet_ids

Specific field mappings

Legacy fieldCurrent field
investors.rolesPEOPLE.facet_ids or ORGANIZATIONS.facet_ids
organizations.rolesORGANIZATIONS.facet_ids
organizations.primary_roleORGANIZATIONS.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 values

Rebuild 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

Specific 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

Every legacy investment_partners field is sourced from INVESTMENTS. In particular:

Legacy fieldCurrent field
investment_partners.partner_uuidINVESTMENTS.partner_identifiers[].uuid
investment_partners.partner_nameINVESTMENTS.partner_identifiers[].value
Other legacy investment_partners fieldsUse 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[].value

Use after_id to paginate until the complete Investments collection has been processed.

Traverse IPO geography

Specific field mappings

Legacy fieldCurrent field or traversal
ipos.cityIPO organization_identifier → Organization location_identifiers[location_type=city].value
ipos.regionIPO organization_identifier → Organization location_identifiers[location_type=region].value
ipos.country_codeIPO → Organization → country Location → LOCATIONS.country_code
ipos.state_codeIPO → 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" → value

3. 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_code

Retrieve organization street address and postal code

Specific field mappings

Legacy fieldCurrent field
organizations.addressADDRESSES.street_1 plus ADDRESSES.street_2
organizations.postal_codeADDRESSES.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_code

Interpret 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 fieldCurrent field or expression
category_groups.category_groups_listCATEGORY.category_groups[].value joined with commas
organizations.category_groups_listORGANIZATIONS.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 fieldCurrent field or expression
organizations.domainhostname extracted from ORGANIZATIONS.website_url
investors.domainhostname 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.


Did this page help you?