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?