> For the complete documentation index, see [llms.txt](https://tri.gitbook.io/tri-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tri.gitbook.io/tri-doc/methodology-or-protocol/add-methodology.md).

# Add Methodology

### Methodology | Protocol

<mark style="color:green;">`POST`</mark> <https://sandbox.triangle.digital/api/v2/d\\_mrv\\_form>

Creates a new methodology or protocol, or a new version of an existing one.

**Blocks of rows.** A block the request carries replaces the stored block whole; a block the request does not mention is left as it is; an empty array clears it. Contact blocks take up to 20 rows; the Data Room rows take up to 100. A row whose e-mail is malformed refuses the request; a row may be sent without an e-mail at all.

**Name and version.** A methodology is unique per name AND version, so two versions of one protocol are two records. The pair is returned by [Get Methodologies List](/tri-doc/methodology-or-protocol/get-methodologies-list.md) as `methodology_display_name`.

**The registry.** The methodology belongs to one of the registries of your company, set by `registry_questionnaire_id` — take the `id` from [Get Registries List](/tri-doc/methodology-or-protocol/get-registries-list.md). The name of the registry is returned as `registry_name` by [Get Methodologies List](/tri-doc/methodology-or-protocol/get-methodologies-list.md) and [View Methodology](/tri-doc/methodology-or-protocol/view-methodology.md).

**Documents.** `data_room` rows carry `type`, `title`, `description` and `file`. `file` is either an uploaded file — sent as `multipart/form-data` — or the link a read of this methodology already returned, which keeps that document unchanged (so a title or a description can be corrected without uploading the file again); a link that does not belong to this methodology is refused. Per-file limit 25 MB, per-request limit 60 MB for the files together.

<table data-full-width="true"><thead><tr><th>Type</th><th>Formats</th><th>Files</th></tr></thead><tbody><tr><td>Eligibility Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Execution Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Methodology Paper</td><td>.pdf, .jpg, .png, .gif, .webp, .svg, .bmp, .tiff, .doc, .docx, .xls, .xlsx, .csv</td><td>1</td></tr><tr><td>Monitoring Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>One Pager Teaser</td><td>.pdf, .jpg, .png, .gif, .webp, .svg, .bmp, .tiff, .doc, .docx, .xls, .xlsx, .csv</td><td>1</td></tr><tr><td>Purpose &#x26; Definitions Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Quantification Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Reporting Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Validation Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Validator Report</td><td>.pdf, .jpg, .png, .gif, .webp, .svg, .bmp, .tiff, .doc, .docx, .xls, .xlsx, .csv</td><td>1</td></tr><tr><td>Verification Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr></tbody></table>

**Headers**

<table data-full-width="true"><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>Content-Type</td><td><code>multipart/form-data</code> when the request uploads a file in <code>data_room</code>; otherwise <code>application/json</code>.</td></tr></tbody></table>

**Body**

<table data-full-width="true" data-search="false"><thead><tr><th width="200">Name</th><th width="110">Type</th><th>Description</th><th width="260">Example</th></tr></thead><tbody><tr><td><code>hash</code></td><td>string</td><td><strong>Required.</strong> API key.</td><td>fk5f0iuy-rr06-j4x3-i75b-fy2s67s4ilo1</td></tr><tr><td><code>d_mrv_name</code></td><td>string</td><td><strong>Required.</strong> Company of the methodology owner.</td><td>Nexora Labs</td></tr><tr><td><code>methodology_name</code></td><td>string</td><td><strong>Required.</strong> Name of the methodology or protocol.</td><td>Blue Carbon Protocol</td></tr><tr><td><code>methodology_version_number</code></td><td>string</td><td>Version of the methodology. Minimum 2 characters. Left out for a methodology without a version.</td><td>2.2</td></tr><tr><td><code>registry_questionnaire_id</code></td><td>integer</td><td>Registry the methodology belongs to — an <code>id</code> from <a href="/tri-doc/methodology-or-protocol/get-registries-list.md">Get Registries List</a>. <strong>Required</strong> if your company has at least one registry.</td><td>13</td></tr><tr><td><code>is_part_carbon_credit_registry</code></td><td>string</td><td>Whether the methodology belongs to a carbon credit registry (for example Verra, Gold Standard, ACR). One of: <code>Yes</code>, <code>No</code>.</td><td>Yes</td></tr><tr><td><code>part_carbon_credit_registry_company_name</code></td><td>string</td><td>Name Of The Registry. Reported as <code>registry_name</code> when the methodology has no <code>registry_questionnaire_id</code>. Up to 255 characters.</td><td>BCarbon</td></tr><tr><td><code>part_carbon_credit_registry_name</code></td><td>array</td><td>Registry contacts, several at once. Objects with <code>name</code>, <code>last_name</code>, <code>email</code>, <code>phone</code> (<code>first_name</code> is accepted as a synonym of <code>name</code>, <code>telephone</code> of <code>phone</code>). A row whose e-mail is malformed refuses the request. Up to 20 rows.</td><td>[{ "name": "Ann", "last_name": "Lee", "email": "ann@registry.com", "phone": "+1 555 0100" }]</td></tr><tr><td><code>cc_protocol_methodology_number</code></td><td>string</td><td>Methodology or protocol number.</td><td>MP-2024-118</td></tr><tr><td><code>d_mrv_types</code></td><td>array</td><td><strong>Required.</strong> Type of methodology. One of: <code>Carbon Credit Bermuda</code>, <code>Carbon Inset</code>, <code>Carbon Offset</code>, <code>Carbon Removal</code>, <code>Carbon Sequestration</code>, <code>Carbon Avoidance</code>, <code>Solar REC</code>, <code>Solar Carbon Credit</code>, <code>Wind REC</code>, <code>Wind Carbon Credit</code>. Sent as an array; more than one value may be selected.</td><td>["Carbon Sequestration"]</td></tr><tr><td><code>issue_assets</code></td><td>string</td><td>Whether the methodology issues assets as produced, as a forward, or both. One of: <code>As Produced</code>, <code>Forward</code>, <code>Both</code>.</td><td>As Produced</td></tr><tr><td><code>d_mrv_description</code></td><td>string</td><td>Description of the methodology.</td><td>Blue carbon protocol for coastal wetland restoration and mangrove reforestation.</td></tr><tr><td><code>dmrv_methodology_category</code></td><td>string</td><td>Category of the methodology. One of: <code>Nature-based</code>, <code>Engineered</code>.</td><td>Nature-based</td></tr><tr><td><code>dmrv_instrument_category</code></td><td>string</td><td>Category of the instrument the methodology produces. One of: <code>REC</code>, <code>Carbon Credit</code>, <code>Co-Benefit</code>, <code>Loan</code>, <code>Bond</code>.</td><td>Carbon Credit</td></tr><tr><td><code>dmrv_methodology_subtype</code></td><td>string</td><td>Subtype of the methodology within its type.</td><td>Mangrove Restoration</td></tr><tr><td><code>data_room</code></td><td>array</td><td>Data Room documents of the methodology. Rows carry <code>type</code>, <code>title</code>, <code>description</code>, <code>file</code>. <code>type</code>: One of: <code>Eligibility Image</code>, <code>Execution Image</code>, <code>Methodology Paper</code>, <code>Monitoring Image</code>, <code>One Pager Teaser</code>, <code>Purpose &#x26; Definitions Image</code>, <code>Quantification Image</code>, <code>Reporting Image</code>, <code>Validation Image</code>, <code>Validator Report</code>, <code>Verification Image</code> — see the Doc Types table above for the allowed formats and how many files of each type a methodology may hold. <code>file</code> is either an uploaded file or the link a read of this methodology already returned. Up to 100 rows.</td><td>[{ "type": "Methodology Paper", "title": "Protocol", "description": "v2.2", "file": "https://sandbox.triangle.digital/uploads/media/file_name/1518/protocol.pdf" }]</td></tr><tr><td><code>associated_parameter</code></td><td>string</td><td>Associated parameter measured by the methodology.</td><td>Efficiency of the project device and batch</td></tr><tr><td><code>parameter_value</code></td><td>string</td><td>Value of the associated parameter.</td><td>44% under the Water Boiling Test (WBT) Method</td></tr><tr><td><code>method_implemented_ie</code></td><td>string</td><td>Method implemented for measurement and monitoring.</td><td>Kitchen Performance Test (KPT) and Monitoring</td></tr><tr><td><code>terms_of_ongoing</code></td><td>string</td><td>Description of ongoing monitoring.</td><td>Quarterly site inspections and remote sensing review.</td></tr><tr><td><code>is_there_auditor_validator</code></td><td>string</td><td>Whether the methodology has an auditor or validator. One of: <code>Yes</code>, <code>No</code>.</td><td>Yes</td></tr><tr><td><code>auditor_attestations</code></td><td>string</td><td>Attestations provided by the auditor or validator.</td><td>Independent verification completed under ISO 14064-3.</td></tr><tr><td><code>auditor_validator_type</code></td><td>string</td><td>Type of the auditor or validator. One of: <code>established</code>, <code>academic</code>, <code>public</code>, <code>private</code>, <code>other</code>.</td><td>established</td></tr><tr><td><code>auditor_name</code></td><td>string</td><td>Auditor / verifier company name.</td><td>Verra Audit Services</td></tr><tr><td><code>auditor_verifier_poc</code></td><td>array</td><td>Auditor / validator contacts, several at once. Same object shape as <code>part_carbon_credit_registry_name</code>. Up to 20 rows.</td><td>[{ "name": "Bob", "last_name": "Li", "email": "bob@audit.com" }]</td></tr><tr><td><code>is_there_insurance_provider</code></td><td>string</td><td>Whether the methodology has an insurance provider. One of: <code>Yes</code>, <code>No</code>.</td><td>Yes</td></tr><tr><td><code>insurance_provider</code></td><td>string</td><td>Insurance provider company name.</td><td>Everest Re</td></tr><tr><td><code>insurance_provider_poc</code></td><td>array</td><td>Insurance provider contacts, several at once. Same object shape as <code>part_carbon_credit_registry_name</code>. Up to 20 rows.</td><td>[{ "name": "Cara", "email": "cara@insurer.com" }]</td></tr><tr><td><code>verification_third_party</code></td><td>string</td><td>Third-party verification of the project.</td><td>Annual verification by an accredited third-party body.</td></tr><tr><td><code>verification_regulatory_compliance</code></td><td>string</td><td>Regulatory compliance requirements for verification.</td><td>Compliance confirmed against state environmental regulations.</td></tr><tr><td><code>verification_monitoring</code></td><td>string</td><td>Monitoring requirements for verification.</td><td>Continuous monitoring with quarterly data submission.</td></tr><tr><td><code>verification_execution</code></td><td>string</td><td>Execution requirements for verification.</td><td>On-site inspection performed by the verification body.</td></tr><tr><td><code>verification_data_quality</code></td><td>string</td><td>Data quality requirements for verification.</td><td>Data cross-checked against independent monitoring sources.</td></tr><tr><td><code>verification_processes_and_entities</code></td><td>string</td><td>Processes and entities involved in verification.</td><td>Verification performed by an ANSI-accredited body.</td></tr><tr><td><code>validation_project_eligibility</code></td><td>string</td><td>Project eligibility requirements for validation.</td><td>Project must meet the methodology's baseline eligibility criteria.</td></tr><tr><td><code>validation_sec_proved_reserves</code></td><td>string</td><td>SEC proved reserves requirements for validation.</td><td>Reserves reported in accordance with SEC definitions.</td></tr><tr><td><code>validation_carbon_content</code></td><td>string</td><td>Carbon content requirements for validation.</td><td>Carbon content verified by laboratory analysis.</td></tr><tr><td><code>validation_data_quality</code></td><td>string</td><td>Data quality requirements for validation.</td><td>Data validated against source measurement records.</td></tr><tr><td><code>monitoring_project_area</code></td><td>string</td><td>Activity monitoring of the project area.</td><td>Satellite imagery review every six months.</td></tr><tr><td><code>monitoring_land_reclamation</code></td><td>string</td><td>Land reclamation monitoring.</td><td>Site inspections to confirm reclamation progress.</td></tr><tr><td><code>monitoring_reversal_compensating</code></td><td>string</td><td>How the methodology compensates for a reversal.</td><td>Buffer pool credits are used to cover a reversal.</td></tr><tr><td><code>eligibility_types_of_activities</code></td><td>string</td><td>Types of activities eligible under the methodology.</td><td>Afforestation and reforestation activities.</td></tr><tr><td><code>eligibility_minimum_requirements</code></td><td>string</td><td>Minimum requirements for eligibility.</td><td>Minimum project area of 10 hectares.</td></tr><tr><td><code>eligibility_project_area</code></td><td>string</td><td>Project area eligibility requirements.</td><td>Located within a designated coastal wetland zone.</td></tr><tr><td><code>eligibility_stakeholder_obligations</code></td><td>string</td><td>Stakeholder obligations for eligibility.</td><td>Community consultation documented before project start.</td></tr><tr><td><code>eligibility_regulatory_compliance</code></td><td>string</td><td>Regulatory compliance requirements for eligibility.</td><td>Project holds all required environmental permits.</td></tr><tr><td><code>eligibility_additionality</code></td><td>string</td><td>Additionality requirements for eligibility.</td><td>Project would not occur without carbon credit revenue.</td></tr><tr><td><code>eligibility_permanence</code></td><td>string</td><td>Permanence requirements for eligibility.</td><td>Minimum 40-year permanence commitment.</td></tr><tr><td><code>eligibility_abatement_period</code></td><td>string</td><td>Abatement period requirements for eligibility.</td><td>10-year crediting period.</td></tr><tr><td><code>eligibility_buffer_account</code></td><td>string</td><td>Buffer account requirements for eligibility.</td><td>10% of issued credits held in the buffer pool.</td></tr><tr><td><code>eligibility_leakage</code></td><td>string</td><td>Leakage requirements for eligibility.</td><td>Leakage deduction of 5% applied to issuance.</td></tr><tr><td><code>quantification_reserve_qualification</code></td><td>string</td><td>Reserve qualification requirements for quantification.</td><td>Reserves qualified under SEC PRMS guidelines.</td></tr><tr><td><code>quantification_carbon_stock_of_reserves</code></td><td>string</td><td>Carbon stock of the reserves.</td><td>Estimated at 1.2 million tCO2e.</td></tr><tr><td><code>quantification_downstream_emissions_avoidance</code></td><td>string</td><td>Downstream Scope 3 emissions avoidance.</td><td>Avoided emissions calculated from displaced fossil fuel use.</td></tr><tr><td><code>quantification_fugitive_methane_emissions</code></td><td>string</td><td>Scope 1 fugitive methane emissions.</td><td>Measured using continuous leak detection sensors.</td></tr><tr><td><code>execution_p_a_regulatory_process</code></td><td>string</td><td>Plugging and abandonment (P&#x26;A) regulatory process.</td><td>Follows state P&#x26;A regulatory filing requirements.</td></tr><tr><td><code>execution_land_reclamation_regulatory_process</code></td><td>string</td><td>Land reclamation regulatory process.</td><td>Reclamation plan approved by the local regulator.</td></tr><tr><td><code>reporting_initial_project_execution</code></td><td>string</td><td>Initial project execution report.</td><td>Baseline report submitted at project start.</td></tr><tr><td><code>reporting_annual_monitoring</code></td><td>string</td><td>Annual monitoring report.</td><td>Monitoring report submitted every 12 months.</td></tr><tr><td><code>reporting_final</code></td><td>string</td><td>Final report submitted at project completion.</td><td>Final report submitted at the end of the crediting period.</td></tr><tr><td><code>purpose_protocol</code></td><td>string</td><td>Purpose of the protocol.</td><td>Establishes a standardized methodology for blue carbon projects.</td></tr><tr><td><code>purpose_supporting_standards</code></td><td>string</td><td>Supporting standards referenced by the protocol.</td><td>Aligned with IPCC Wetlands Supplement guidance.</td></tr><tr><td><code>purpose_blockchain_implementation</code></td><td>string</td><td>Blockchain implementation of the protocol.</td><td>Credits tokenized and tracked on-chain at issuance.</td></tr><tr><td><code>purpose_definition</code></td><td>string</td><td>Definition of terms used in the protocol.</td><td>Defines baseline, additionality and permanence terms.</td></tr><tr><td><code>zerosix_credit_ownership_allocation</code></td><td>string</td><td>Project credit ownership and allocation.</td><td>Credits allocated proportionally to project investors.</td></tr><tr><td><code>zerosix_buffer_account_allocation</code></td><td>string</td><td>Buffer account allocation.</td><td>10% of credits allocated to the buffer account.</td></tr><tr><td><code>zerosix_project_credit_distribution</code></td><td>string</td><td>Project credit distribution.</td><td>Credits distributed quarterly upon verification.</td></tr><tr><td><code>zerosix_project_credit_retirement</code></td><td>string</td><td>Project credit retirement.</td><td>Credits retired upon final buyer request.</td></tr><tr><td><code>references</code></td><td>string</td><td>References supporting the methodology.</td><td>IPCC 2019 Refinement, Wetlands Supplement.</td></tr><tr><td><code>co_benefits_description</code></td><td>string</td><td>Description of the methodology's co-benefits.</td><td>Improves coastal biodiversity and local livelihoods.</td></tr><tr><td><code>un_sustainable_development_goals</code></td><td>array</td><td>Sustainable Development Goals (SDGs) supported by the methodology.</td><td>["No Poverty","Industry, Innovation and Infrastructure","Reduce Inequalities"]</td></tr><tr><td><code>registry_type</code></td><td>string</td><td>Type of registry used by the methodology. One of: <code>Traditional Ledger Registry</code>, <code>Digital Asset Registry</code>.</td><td>Digital Asset Registry</td></tr></tbody></table>

```json
{
    "hash": "fk5f0iuy-rr06-j4x3-i75b-fy2s67s4ilo1",
    "d_mrv_name": "Nexora Labs",
    "methodology_name": "Blue Carbon Protocol",
    "methodology_version_number": "2.2",
    "d_mrv_types": ["Carbon Sequestration"],
    "registry_questionnaire_id": 13,
    "is_part_carbon_credit_registry": "Yes",
    "part_carbon_credit_registry_company_name": "BCarbon",
    "part_carbon_credit_registry_name": [
        { "name": "Ann", "last_name": "Lee", "email": "ann@registry.com", "phone": "+1 555 0100" }
    ],
    "dmrv_methodology_category": "Nature-based",
    "dmrv_instrument_category": "Carbon Credit",
    "issue_assets": "As Produced",
    "is_there_auditor_validator": "Yes",
    "auditor_name": "Verra Audit Services",
    "auditor_validator_type": "established",
    "auditor_verifier_poc": [
        { "name": "Bob", "last_name": "Li", "email": "bob@audit.com" }
    ]
}
```

When a `data_room` row uploads a file, send the request as `multipart/form-data` instead:

```
POST /api/v2/d_mrv_form HTTP/1.1
Content-Type: multipart/form-data; boundary=----boundary

----boundary
Content-Disposition: form-data; name="hash"

fk5f0iuy-rr06-j4x3-i75b-fy2s67s4ilo1
----boundary
Content-Disposition: form-data; name="data_room[0][type]"

Methodology Paper
----boundary
Content-Disposition: form-data; name="data_room[0][title]"

Protocol
----boundary
Content-Disposition: form-data; name="data_room[0][description]"

v2.2
----boundary
Content-Disposition: form-data; name="data_room[0][file]"; filename="protocol.pdf"
Content-Type: application/pdf

<binary file content>
----boundary--
```

**Response fields**

<table data-full-width="true" data-search="false"><thead><tr><th width="300">Field</th><th width="110">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>message</code></td><td>string</td><td>Human-readable result of the call.</td></tr><tr><td><code>success</code></td><td>boolean</td><td>Whether the methodology was created; a refused call answers HTTP 400.</td></tr><tr><td><code>data.form_id</code></td><td>integer</td><td>The methodology identifier is one value under three names: <code>form_id</code> in the <a href="/tri-doc/methodology-or-protocol.md">Methodology | Protocol</a> section, <code>id</code> in <a href="/tri-doc/carbon-credit/d-mrv-methodologies.md">D-MRV Methodologies</a>, and <code>methodology_id</code> when a project links it. Use it also in <a href="/tri-doc/carbon-credit/add-project.md">Add Project</a>, <a href="/tri-doc/methodology-or-protocol/view-methodology.md">View Methodology</a> and <a href="/tri-doc/methodology-or-protocol/update-methodology.md">Update Methodology</a>.</td></tr><tr><td><code>data.errors</code></td><td>object</td><td>Present on a refusal: field name mapped to the list of its problems.</td></tr><tr><td><code>operations_count</code></td><td>integer</td><td>Operations counted for this call in the API usage accounting.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="201" %}
{% code fullWidth="false" %}

```json
{
    "message": "D-MRV Form has been successfully created",
    "success": true,
    "data": {
        "form_id": 33
    },
    "operations_count": 1
}
```

{% endcode %}
{% endtab %}

{% tab title="400" %}
This answer happens when the request is refused — for example when `d_mrv_types` holds a value outside the allowed list, when a methodology with the same name and version already exists (reported under the key `methodology_name`), when `registry_questionnaire_id` is missing or is not a registry of your company, or when a `data_room` row is invalid. No methodology is created.

```json
{
    "message": "D-MRV Form has not been successfully created",
    "success": false,
    "data": {
        "errors": {
            "d_mrv_types": [
                "must be one or more of: \"Carbon Credit Bermuda\", \"Carbon Inset\", \"Carbon Offset\", \"Carbon Removal\", \"Carbon Sequestration\", \"Carbon Avoidance\", \"Solar REC\", \"Solar Carbon Credit\", \"Wind REC\", \"Wind Carbon Credit\""
            ],
            "methodology_name": [
                "has already been taken"
            ],
            "registry_questionnaire_id": [
                "is not a Registry Questionnaire of this company"
            ],
            "data_room": [
                "item 0: 'type' must be one of: \"Eligibility Image\", \"Execution Image\", \"Methodology Paper\", \"Monitoring Image\", \"One Pager Teaser\", \"Purpose & Definitions Image\", \"Quantification Image\", \"Reporting Image\", \"Validation Image\", \"Validator Report\", \"Verification Image\"",
                "item 1: file extension is not allowed for \"Eligibility Image\" (.png, .jpg, .webp, .bmp, .svg)",
                "item 2: at most 1 document(s) of type \"Methodology Paper\" are allowed",
                "item 3: file is larger than 25 MB",
                "item 4: 'file' must be an uploaded file or the link of a file already in this record",
                "item 5: 'file' does not belong to this record",
                "must contain at most 100 items"
            ]
        }
    },
    "operations_count": 1
}
```

{% endtab %}
{% endtabs %}
