Put data
13 minute read
Attention
Only the endpoints listed below can be updated using the API and only the listed PUT fields can be updated on each endpoint. Field values are as explained for the POST API endpoints, except that in all cases you must also provide theid of the record to be updated.Updating individual identifications
A change to an identification, including its modifier, identification_date
or identification_notes, requires an explicit identifier or identifier_id.
The precedence is row identifier, row identifier_id, then header.identifier.
identifier=collector is accepted only when collectors are explicitly supplied
and validated in that same update, in the row or common header. Existing
collectors are not an implicit fallback. identifier=keep is rejected.
Updates limited to unrelated fields, such as the individual’s notes, preserve
the identification and do not require an identifier.
{
"header": {"import_missing_taxa": true},
"data": [{"id": 123, "taxon": "Inga alba", "identifier": "A.Costa"}]
}
Replace the individual ID and person with existing records. The optional
import_missing_taxa flag follows the same rules as POST.
Check per-record results and job logs for resolution warnings or identification
errors; a completed job does not imply every row succeeded.
Quick links
individuals (PUT)
Individuals (GET lists, POST creates, PUT updates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Numeric ID of the record to be updated (Provide id or individual_id.) | 12 |
collector | No | Collector(s) id, abbreviation, name or email. Use | or ; to separate multiple people; first is main collector. | J.Silva|M.Costa |
dataset | No | Dataset id or acronym. | 3 or FOREST1 |
date | No | Date (YYYY-MM-DD) or incomplete date (e.g. 1888-05-NA) or array with year/month/day. | 2024-05-20 or {\"year\":1888,\"month\":5} |
header.import_missing_taxa | No | Individuals POST/PUT header option (not a row field). Boolean, default false. When true, try importing a missing scientific name with the taxon API rules and current user permissions. Missing numeric IDs cannot be imported. Imported taxa remain registered if the individual later fails. | true |
identification_based_on_biocollection | No | Biocollection name/id used as reference for identification. | INPA |
identification_based_on_biocollection_number | No | CatalogNumber in the reference biocollection | 8765 |
identification_date | No | Identification date: YYYY, YYYY-MM or YYYY-MM-DD (also / separators). Unknown month/day may be NA, OO or 00. A known day requires a known month; all supplied components must form a valid date. | 2023-06-NA |
identification_individual | No | ID/organismID of another individual that provides the taxonomic identification for the individual’s record | 3245 or REC-123 |
identification_notes | No | Notes for the identification. | Checked with microscope |
identifier | No | Required when updating the identification, including its notes, modifier or date; unrelated individual updates do not require it. Supply the responsible person(s) via identifier, identifier_id or header.identifier. identifier=collector is accepted only with collectors explicitly supplied and validated in this update (row or common header); existing collectors are not a fallback. identifier=keep is rejected. (Required when changing identification; identifier_id or header.identifier may also supply it. collector requires collectors explicitly supplied in this update.) | 4|7 |
identifier_id | No | Person id or delimited person id list responsible for an identification. (Alternative to identifier when updating identification.) | 4 or 4|7 |
individual_id | No | Numeric ID of the record to be updated (Provide id or individual_id.) | 12 |
modifier | No | Identification qualifier: 0=none, 1=s.s., 2=s.l., 3=cf., 4=aff., 5=vel aff. Accepts codes or strings, with or without a final period (cf, aff, vel aff). Standalone qualifiers in the taxon name are extracted, including at the end. Conflicting explicit and embedded modifiers cause an error. Compact provisional epithets such as aff.racemosa and cf.muricata2 remain intact. | 3 |
notes | No | Free text or JSON notes field. | {\"expedition\":\"2024-01\",\"tag\":\"P1\"} |
tag | No | Individual tag/number/code. | A-1234 |
taxon | No | Single local taxon ID or canonical scientific name for the new identification; lists are not accepted. Omission preserves the previous taxon when other identification fields are updated. An explicitly supplied unknown taxon fails the row unless automatic name import succeeds; it never silently retains the old taxon. Standalone qualifiers are mapped to modifier; isolated infraspecific rank markers are removed before lookup. Compact epithets (sp.1, sp.nov, aff.racemosa, cf.muricata2) and their unpublished-author suffix are preserved. Spaced placeholders such as sp. 1 and sp. nov. are rejected. | Inga alba |
taxon_id | No | Single existing local taxon ID, taking precedence over taxon. A blank taxon_id falls back to taxon. Missing numeric IDs cannot be imported from external sources. | 456 |
individual-locations (PUT)
Occurrences for individuals with multiple locations (GET lists, POST/PUT upserts).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Numeric ID of the record to be updated (Provide id or individual_location_id.) | 12 |
altitude | No | Elevation in meters. | 75 |
angle | No | Azimuth from reference point, in degrees. | 45 |
distance | No | Distance from reference point in meters. | 12.5 |
individual | No | Individual id, uuid or organismID (fullname). | 4521 or 2ff0e884-3d33 |
individual_location_id | No | Individual-location record id. (Provide id or individual_location_id.) | 44 |
latitude | No | Latitude in decimal degrees (negative for south). | -3.101 |
location | No | Location id or name. | Parcela 25ha or 55 |
location_date_time | No | Date or date+time for the occurrence/location event. | 2023-08-14 12:30:00 |
location_notes | No | Notes for the occurrence/location entry. | Near trail marker 10 |
longitude | No | Longitude in decimal degrees (negative for west). | -60.12 |
x | No | Cartesian coordinate for individual within plot/transect, from origin | 10 |
y | No | Cartesian coordinate for individual within plot/transect. When transect, positive values for right-side and negative for left-side, from origin. | 5.1 |
locations (PUT)
Locations (GET lists, POST creates, PUT updates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Numeric ID of the record to be updated (Provide id or location_id.) | 12 |
adm_level | No | Location administrative level code (e.g. 100=plot, 10=country). | 100 |
altitude | No | Elevation in meters. | 75 |
datum | No | Spatial datum/projection string. | EPSG:4326-WGS 84 |
geom | No | WKT geometry (POINT, LINESTRING, POLYGON, MULTIPOLYGON). | POLYGON((-60 -3,-60.1 -3,-60.1 -3.1,-60 -3.1,-60 -3)) |
ismarine | No | Flag to allow marine/offshore locations outside country polygons. | 1 |
lat | No | Latitude in decimal degrees (negative for south). | -3.101 |
location_id | No | Location id of the record to update. (Provide id or location_id.) | 44 |
long | No | Longitude in decimal degrees (negative for west). | -60.12 |
name | No | Translatable trait name. Accepts a plain string or a JSON map of language codes to names. | {"en":"Height","pt-br":"Altura"} |
notes | No | Free text or JSON notes field. | {\"expedition\":\"2024-01\",\"tag\":\"P1\"} |
parent | No | Parent id/name; for traits this is another trait export_name/id to define hierarchy. | woodDensity |
provenance_attribution | No | Authorship or attribution statement for the location data. | Survey team, 2026 |
provenance_license | No | License name or identifier for the location data. | CC BY 4.0 |
provenance_license_url | No | URL containing the license terms. | https://creativecommons.org/licenses/by/4.0/ |
provenance_source | No | Name or citation of the source from which the location was derived. | Field survey |
provenance_source_url | No | URL for the location data source. | https://example.org/survey |
startx | No | Start X coordinate for subplot relative to parent plot. | 5.5 |
starty | No | Start Y coordinate for subplot relative to parent plot. | 10.0 |
x | No | X dimension for plots/transects | 100 |
y | No | Y dimension for plots or buffer for transects | 40 |
measurements (PUT)
Trait measurements (GET lists, POST creates/imports via ImportMeasurements job, PUT bulk updates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Numeric ID of the record to be updated (Provide id or measurement_id.) | 12 |
bibreference | No | Bibreference id or bibkey. | 34 or ducke1953 |
dataset | No | Dataset id or acronym. | 3 or FOREST1 |
date | No | Date (YYYY-MM-DD) or incomplete date (e.g. 1888-05-NA) or array with year/month/day. | 2024-05-20 or {\"year\":1888,\"month\":5} |
duplicated | No | Sequential number to allow duplicate measurements for same trait+object+date. | 2 for a second measurement, number 3 for third, ... |
link_id | No | Linked object id when trait type is Link. | taxon id 55 |
location | No | Location id or name. | Parcela 25ha or 55 |
measurement_id | No | Measurement id of the record to update. (Provide id or measurement_id.) | 77 |
notes | No | Free text or JSON notes field. | {\"expedition\":\"2024-01\",\"tag\":\"P1\"} |
object_id | No | Id of the measured object (Individual, Location, Taxon, Voucher or Media). | 4521 |
object_type | No | Measured object type: Individual, Location, Taxon, Voucher, or Media. | Individual |
parent_measurement | No | Parent measurement ID for measurements whose variable depends on the measurement of another variable | 3001 |
person | No | Person id, abbreviation, full name or email (supports lists with | or ;). | J.Silva|M.Costa |
trait_id | No | Trait id or export_name for measurements. | 12 or DBH |
value | No | Measurement payload varies by trait type: QUANT_INTEGER (0) = integer number; QUANT_REAL (1) = decimal number with dot separator; CATEGORICAL or ORDINAL (2/4) = single category id or translated name; CATEGORICAL_MULTIPLE (3) = list of category ids/names separated by | ; or , (or an array); TEXT (5) = free text string; COLOR (6) = hex color like #A1B2C3 or #ABC; LINK (7) = send link_id pointing to the linked object (value may be blank or a numeric qualifier); SPECTRAL (8) = semicolon-separated numeric series whose length equals trait value_length; GENEBANK (9) = GenBank accession string (validated against NCBI). | QUANT_REAL: 23.4 | CATEGORICAL: 15 | CATEGORICAL_MULTIPLE: 12|14 | SPECTRAL: 0.12;0.11;0.10 |
media (PUT)
Media metadata (GET lists, POST creates, PUT updates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Single id or comma-separated list to filter or target records. (Provide id, media_id or media_uuid.) | 1,2,3 |
collector | No | Collector(s) id, abbreviation, name or email. Use | or ; to separate multiple people; first is main collector. | J.Silva|M.Costa |
dataset | No | Dataset id or acronym. | 3 or FOREST1 |
date | No | Date (YYYY-MM-DD) or incomplete date (e.g. 1888-05-NA) or array with year/month/day. | 2024-05-20 or {\"year\":1888,\"month\":5} |
latitude | No | Latitude in decimal degrees (negative for south). | -3.101 |
license | No | Public license code for media (CC0, CC-BY, CC-BY-SA, etc.). | CC-BY-SA |
location | No | Location id or name. | Parcela 25ha or 55 |
longitude | No | Longitude in decimal degrees (negative for west). | -60.12 |
media_id | No | Media numeric id. (Provide id, media_id or media_uuid.) | 88 |
media_uuid | No | Media UUID. (Provide id, media_id or media_uuid.) | a3f0a4ac-6b5b-11ed-b8c0-0242ac120002 |
notes | No | Free text or JSON notes field. | {\"expedition\":\"2024-01\",\"tag\":\"P1\"} |
project | No | Project id or acronym. | PDBFF or 2 |
tags | No | Tag ids or names list for media or filters (use | or ;). | flower|leaf |
title_en | No | Media title in English. | Leaf detail |
title_es | No | Media title in Spanish. | Detalle de la hoja |
title_pt-br | No | Media title in Brazilian Portuguese. | Detalhe da folha |
persons (PUT)
People (GET lists, POST creates, PUT updates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Numeric ID of the record to be updated (Provide id or person_id.) | 12 |
abbreviation | No | Standard abbreviation for a person or biocollection. | Silva, J.B, Pilco, M.V. |
biocollection | No | Biocollection id, name or acronym. | INPA |
email | No | Email address. | user@example.org |
full_name | No | Person full name. | Joao Silva |
institution | No | Institution associated with a person. | INPA |
person_id | No | Person id of the record to update. (Provide id or person_id.) | 12 |
vouchers (PUT)
Voucher specimens (GET lists, POST creates, PUT updates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Numeric ID of the record to be updated (Provide id or voucher_id.) | 12 |
biocollection | No | Biocollection id, name or acronym. | INPA |
biocollection_number | No | Catalogue number/code inside the biocollection. | 12345 |
biocollection_type | No | Nomenclatural type code or name. | Holotype or 2 |
clear_biocollection_number | No | When 1, clears the current biocollection_number on update. | 1 |
collector | No | Collector(s) id, abbreviation, name or email. Use | or ; to separate multiple people; first is main collector. | J.Silva|M.Costa |
dataset | No | Dataset id or acronym. | 3 or FOREST1 |
date | No | Date (YYYY-MM-DD) or incomplete date (e.g. 1888-05-NA) or array with year/month/day. | 2024-05-20 or {\"year\":1888,\"month\":5} |
individual | No | Individual id, uuid or organismID (fullname). | 4521 or 2ff0e884-3d33 |
notes | No | Free text or JSON notes field. | {\"expedition\":\"2024-01\",\"tag\":\"P1\"} |
number | No | Collector number/code (voucher/individual tag when different from individual). | 1234A |
voucher_id | No | Voucher id of the record to update. (Provide id or voucher_id.) | 55 |
taxons (PUT)
Taxonomic names (GET lists, POST creates).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Required existing taxon id to update. taxon_id is accepted as an alias. (Provide id or taxon_id.) | 12 |
api_source | No | External authority to accept when taxonomic APIs disagree. It must identify a source present in every returned conflict. | IndexFungorum, GBIF, Tropicos, IPNI, MycoBank, or ZooBank |
author | No | Taxon authorship string for published names. Unpublished names should leave this null and use author_id/person instead. | Smith & Jones |
author_id | No | Optional unpublished-author id. If present, the taxon is treated as unpublished for duplicate checking. | 25 |
bibkey | No | Optional bibreference id or bibkey to resolve bibreference_id. | ducke1953 or 34 |
bibreference | No | Bibreference id or bibkey. | 34 or ducke1953 |
bibreference_id | No | BibReference id list for voucher filtering. | 10,11 |
enforceValid | No | Optional boolean override for published-name updates. Use when you intentionally want to keep valid=true even though the API reports the name as invalid and returns a senior name. | 1 or true |
gbif | No | Optional explicit GBIF id. If a published-name rename triggers API lookup, API-derived value has priority; otherwise the informed value is stored without extra validation. | 28792 |
indexfungorum | No | Index Fungorum identifier for a taxon. | IF123456 |
ipni | No | Optional explicit IPNI id. If a published-name rename triggers API lookup, API-derived value has priority; otherwise the informed value is stored without extra validation. | 123456-1 |
level | No | Optional new rank code or rank name. Required when changing unpublished taxa in a way that needs rank validation and always checked against the parent. | 210 or species |
mobot | No | Optional explicit Tropicos/MOBOT id. If a published-name rename triggers API lookup, API-derived value has priority; otherwise the informed value is stored without extra validation. | 25509881 |
mycobank | No | Optional explicit MycoBank id. If a published-name rename triggers API lookup, API-derived value has priority; otherwise the informed value is stored without extra validation. | MB123456 |
name | No | Optional new taxon name. If the taxon is published and name changes, external APIs are used again and may overwrite informed parent, rank, validity, senior_id, authorship, bibreference, and external ids. If the taxon is unpublished and name changes, duplicate checks are applied instead of API lookup. Scientific name or epithet. Standalone infraspecific rank markers are removed; level resolution remains with the taxon API. For unpublished taxa, inform person/author_id: the author suffix is generated automatically. Compact provisional epithets such as sp.1, sp.nov, aff.racemosa and cf.muricata2 are preserved. Meaningless isolated epithets (sp., spp, indet) and spaced placeholders (sp. 1, sp. nov.) are rejected. Qualifiers removed from a taxon name are reported as warnings; they belong to individual identifications. | Ocotea guianensis |
notes | No | Optional replacement for notes. Accepts a plain string or a JSON string. | {"reviewed_by":"J. Silva"} |
parent | No | Optional new parent id or scientific name. All name updates and parent changes are revalidated against taxon-level rules. | Ocotea or 120 |
parent_id | No | Parent id for hierarchical queries. | 210 |
parent_name | No | Alternative parent taxon name used by taxon imports and updates. | Ocotea |
person | No | Optional author reference for unpublished taxa. Accepts person id, abbreviation, full name, or email and resolves to author_id. | 25 or Pilco, M.V. |
senior_id | No | Optional accepted-name taxon id. Allowed only when valid=false. The referenced senior taxon must be valid and published; unpublished senior names are rejected. | 345 |
taxon_id | No | Alias of id for update payloads. (Provide id or taxon_id.) | 12 |
valid | No | Optional boolean. Both published and unpublished taxa may be invalid. If set to true, senior_id is cleared. If set to false on a published name, senior_id must be informed. If you send valid=true for a published-name rename and the API says the name is invalid, the update is rejected unless enforceValid=true is also sent. | 1 or 0 |
zoobank | No | Optional explicit ZooBank id. If a published-name rename triggers API lookup, API-derived value has priority; otherwise the informed value is stored without extra validation. | urn:lsid:zoobank.org:act:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
traits (PUT)
Trait definitions (GET lists, POST creates, PUT updates with per-record authorization).
| Parameter | Required | Description | Example |
|---|---|---|---|
id | No | Single id or comma-separated list to filter or target records. | 1,2,3 |
bibreference | No | Bibreference id or bibkey. | 34 or ducke1953 |
categories | No | Trait categories JSON list with lang/rank/name/description. | [{\"lang\":\"en\",\"rank\":1,\"name\":\"small\"}] |
confirm_similar_trait | No | Explicit acknowledgement after reviewing similar Trait candidates returned by a failed POST or PUT row. | false |
description | No | Translatable description text. Accepts a plain string or a JSON map of language codes to descriptions. | {"en":"Tree height at breast height","pt-br":"Altura da árvore à altura do peito"} |
export_name | No | Unique export name for trait. | treeDbh,plantHeight |
link_type | No | Class name for Link trait target (e.g. Taxon). | Taxon |
name | No | Translatable trait name. Accepts a plain string or a JSON map of language codes to names. | {"en":"Height","pt-br":"Altura"} |
notes | No | Free text or JSON notes field. | {\"expedition\":\"2024-01\",\"tag\":\"P1\"} |
objects | No | Trait target objects (comma separated). | Individual,Voucher |
parent | No | Parent trait id or export_name; when set, measurements of this trait must also include a measurement for the parent trait. | woodDensity |
range_max | No | Maximum allowed numeric value for quantitative traits. | 999.9 |
range_min | No | Minimum allowed numeric value for quantitative traits. | 0.01 |
tags | No | Tag ids or names list for media or filters (use | or ;). | flower|leaf |
trait_id | No | Trait id or export_name for measurements. | 12 or DBH |
type | No | Generic type parameter (trait type code or vernacular type such as use/generic/etimology). | use or 10 |
unit | No | — | |
uuid | No | — | |
value_length | No | Number of values for spectral trait types. | 1024 |