> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aventure.vc/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aventure.vc/_mcp/server.

# Patch fundraise round

PATCH https://api.aventure.vc/v1/entities/detail/fundraise-rounds/{transactionId}
Content-Type: application/merge-patch+json

Patches a fundraise round for an entity. Use --entity-id or --entity-slug for the fundraising/portfolio company that raised the round — always a company, never the fund or investment firm. For an investment made by an Investment Firm, pass the portfolio company that received the money here, not the investment firm id and not the round id. Use transactionId for the round id. dateAnnounced is required after create, replace, and merge-patch; use the announcement date, earliest source publication date, first day of a known month, or YYYY-01-01T00:00:00Z when only a year remains after source-tier search.

Reference: https://docs.aventure.vc/api-reference/a-venture-api/entity-fundraise/patch-fundraise-transaction

## Authentication

- `Authorization` header (bearer token, required) — User bearer token: Supabase or Clerk session JWT, Clerk OAuth access token, or Clerk personal API key
- `X-API-Key` header (required) — Admin API key for system-to-system write operations

## Request

### Path parameters

- `transactionId` (string, required) — Fundraise round transaction id. Use this with the --entity-id or --entity-slug selector that owns the round.

### Query parameters

- `id` (string, optional) — Owner-scoped resource UUID selector.
- `slug` (string, optional) — Owner-scoped resource slug selector.
- `sourceType` (enum, required) — Write provenance source type.
  - Allowed values: `requestChangeForm`, `newsArticle`, `blogArticle`, `firstPartyWebsite`, `relatedPartyWebsite`, `thirdPartyWebsite`, `llm`, `aventureStaff`
- `sourceDetail` (string, required) — Source detail or reviewer reference for the write.
- `sourceProvider` (string, optional) — Provider name for provider-native IDs or slugs.
- `sourceProviderId` (string, optional) — Provider-native source ID.
- `sourceProviderSlug` (string, optional) — Provider-native source slug.
- `actorType` (enum, optional) — Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.
  - Allowed values: `agent`, `employee`
- `agentChassis` (string, optional) — Agent chassis token for agent-authored writes.
- `agentModel` (string, optional) — Agent model id for agent-authored writes.

### Body (application/merge-patch+json)

- `dateAnnounced` (datetime, required, nullable) — Required occurrence date for the round. Use the announcement date; otherwise use the earliest source publication date announcing the round. For month/year evidence use the first day of that month; after source-tier search with only a year, use YYYY-01-01T00:00:00Z.
- `amountRaised` (long, optional, nullable) — Amount raised in this round only, in `currency` units (full units, not minor). Never include amounts from prior rounds, even when a press release reports a combined headline figure — record each round separately. Requires `currency` when supplied.
- `creator` (string, optional, nullable) — Creator label
- `currency` (string, optional, nullable) — Required when amountRaised is supplied; ISO 4217 currency code.
- `dataConfidence` (enum, optional, nullable) — Data confidence level
  - Allowed values: `High`, `Medium`, `Low`, `Verified`
- `dateFundingComplete` (datetime, optional, nullable) — Date funding completed
- `dateInvestorExit` (datetime, optional, nullable) — Investor exit date
- `financialInstrumentType` (enum, optional, nullable) — Financial instrument type
  - Allowed values: `SAFE`, `Convertible Note`, `Preferred Stock`, `Common Stock`, `Other Equity`, `Bond`, `Loan`, `Other Debt`, `Grant`, `Token`
- `investorCount` (integer, optional, nullable) — Source-reported number of investors in the round. This can exceed the identified investor joins when a source reports a total without naming every investor; it is not derived from raw join-row count.
- `round` (string, optional, nullable) — Round label (e.g. Pre-Seed, Seed, Series A). One row per round — never collapse multiple rounds into a single transaction even when press reports a combined headline.
- `roundType` (string, optional, nullable) — Round type
- `status` (enum, optional, nullable) — Transaction status
  - Allowed values: `Announced`, `Announced; subject to approvals and closing conditions`, `Active`, `Closed`, `Completed`, `In Progress`, `Open`
- `valuationPostMoney` (long, optional, nullable) — Post-money valuation
- `valuationPreMoney` (long, optional, nullable) — Pre-money valuation

## Response

### 200

OK

- `id` (string, required) — Canonical fundraise transaction UUID
- `sourceAttribution` (list of object, required)
  - `attributionType` (enum, required) — How this attribution row participates in the investor view.
    - Allowed values: `direct`, `managedFund`
  - `joinId` (string, required) — Fundraise investor join identifier
  - `leadInvestor` (boolean, required) — Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment.
  - `transactionId` (string, required) — Fundraise transaction identifier
  - `amountInvested` (double, optional, nullable) — Investor-level attributed amount invested in the fundraise transaction currency. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid.
  - `beneficialEntityId` (string, optional, nullable) — Investment firm entity receiving the rollup attribution.
  - `fundManagerRelationshipId` (integer, optional, nullable) — Fund-manager relationship id when the attribution rolls up through a managed fund.
  - `recordedEntityId` (string, optional, nullable) — Entity recorded directly on the fundraise investor join.
  - `round` (object, optional, nullable) — Round label for the attributed participation
    - `round` (string, required)
- `amountRaised` (long, optional, nullable)
- `createdAt` (datetime, optional, nullable)
- `currency` (string, optional, nullable)
- `dataConfidence` (enum, optional, nullable) — Data confidence level
  - Allowed values: `High`, `Medium`, `Low`, `Verified`
- `dateAnnounced` (datetime, optional, nullable)
- `dateFundingComplete` (datetime, optional, nullable)
- `dateInvestorExit` (datetime, optional, nullable)
- `entity` (object, optional, nullable) — Entity projection used inside FundraiseTransaction responses
  - `core` (object, required) — Flat entity core record — identity, naming, status, image, and source metadata. An entity is our umbrella record for organizations such as companies, funds, investment firms and investors, accelerators, nonprofits, and government agencies, plus products and services connected to those organizations. Returned directly by thin-mode (?mode=thin) and alphabetical (?letter=X) list endpoints. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.
    - `id` (string, required) — Unique entity identifier
    - `image` (object, required) — Logo and monogram image metadata
      - `isMonogram` (boolean, required) — Whether entity image monogram
      - `logo` (string, optional, nullable)
      - `logoSquare` (string, optional, nullable)
    - `nameAlias` (list of object, required) — All names this entity has been known by — current alternates, DBAs, former names, and rebrand-source identities. Naming history (e.g. `Metaphor Systems` for the current `Exa` entity) lives here; never as a separate relationship type or `formerName` field.
      - `name` (string, required) — Alternate name text
      - `displayable` (boolean, optional, nullable) — Show this alias in public name displays.
      - `type` (enum, optional, nullable) — Alias type classification
        - Allowed values: `alternativeDba`, `relatedLegal`
    - `nameBrand` (string, required) — Resolved display brand name
    - `slug` (string, required) — URL-safe identifier
    - `createdAt` (datetime, optional, nullable) — Record creation timestamp
    - `defaultCurrency` (string, optional, nullable) — Default currency code (ISO 4217)
    - `foundedYear` (integer, optional, nullable) — Year the entity was founded
    - `lastModifiedAt` (datetime, optional, nullable) — Provenance-grounded last-modified watermark (schema.org dateModified). Advances only when a real, consumer-meaningful data point changes via a recorded provenance event — never on timestamp-only writes, migrations, or index refreshes. Pairs with createdAt (dateCreated) and grounds the sitemap lastmod.
    - `nameLegal` (string, optional, nullable) — Registered legal name
    - `operatingStatus` (string, optional, nullable) — Current operating status. Use Acquired Subsidiary when the entity was acquired and still operates; use Acquired only when it is terminal, folded, or closed.
    - `publicId` (string, optional, nullable) — Stable, immutable public handle (e.g. `eV1StGXR8Z5a`). Never changes once assigned, unlike the slug. Null on projections that do not select it and on rows still awaiting handle backfill.
    - `publicUrl` (string, optional, nullable) — Absolute public profile URL on the aVenture front-end, e.g. `https://aventure.vc/non-profits/{slug}`, derived from the typeRecord's canonical route family. Null when the route needs relationship context or the record has no direct public SSR route (Business Line, Organization, Product, Service, or a non-public slug). EntityDetail.publicUrl resolves Business Line parent context. Product/Service pages are provider-nested: compose the provider entity's publicUrl + `/products-services/` + this record's slug, or consume the sitemap-urls slot paths, which already emit the composed child routes.
    - `sitemap` (object, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
      - `hasAnalysis` (boolean, required) — Whether the profile Analysis sub-route should be emitted.
      - `hasEmployees` (boolean, required) — Whether the profile Employees sub-route should be emitted.
      - `hasFundraising` (boolean, required) — Whether the profile Fundraising sub-route should be emitted.
      - `hasNews` (boolean, required) — Whether the profile News sub-route should be emitted.
      - `productServiceSlug` (list of string, required) — Slugs of related Product/Service entities that should each get their own `/companies/<slug>/products-services/<productSlug>` URL, capped at `MAX_PRODUCT_SERVICE_SLUGS` server-side. Derived from current `productService` relationships in either stored direction; the entity relationships resource is the authoritative, read-your-writes view of those joins.
      - `hasAcquisitions` (boolean, optional, default: false) — Whether `/companies/<slug>/acquisitions` should be emitted. True only when an acquisition relationship exists AND both the acquired and acquirer entities are publicly visible. A confirmed acquisition relationship row with this flag `false` (or with `entities acquisitions list` returning zero rows) means a counterpart entity is still hidden -- publish it -- it is a visibility gate, not list lag.
    - `typeRecord` (enum, optional, nullable) — Entity type classification
      - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
    - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
  - `fundingDetail` (object, optional, nullable) — Aggregate view of an entity's fundraising activity
    - `fundingRoundCount` (integer, required)
    - `investorCount` (integer, required)
    - `totalRaised` (double, required)
    - `latestValuation` (double, optional, nullable)
    - `mostRecentAmount` (double, optional, nullable)
    - `mostRecentDate` (date, optional, nullable)
    - `stage` (enum, optional, nullable) — Canonical inferred equity, entity-type, or Company operating-status stage emitted by the entity fundraise rollup. Transaction classifications such as Debt, IPO, and Acquisition are not entity stages.
      - Allowed values: `Angel`, `Pre-Seed`, `Seed`, `Series A`, `Series B`, `Series C`, `Series D`, `Series E`, `Series F`, `Series G`, `Series H`, `Series I`, `Series J`, `Series K`, `Series L`, `Series M`, `Series N`, `Series O`, `Series P`, `Series Q`, `Series R`, `Series S`, `Series T`, `Series U`, `Series V`, `Series W`, `Series X`, `Series Y`, `Series Z`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Public`, `Acquired`, `Acquired Subsidiary`
- `investorAttribution` (object, optional, nullable) — Investor-specific attribution when returned from investor-perspective investment views. amountInvested is not added to amountRaised; it is the selected investor's attributed participation amount for this round.
  - `attributionType` (enum, required) — How this attribution row participates in the investor view.
    - Allowed values: `direct`, `managedFund`
  - `joinId` (string, required) — Fundraise investor join identifier
  - `leadInvestor` (boolean, required) — Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment.
  - `transactionId` (string, required) — Fundraise transaction identifier
  - `amountInvested` (double, optional, nullable) — Investor-level attributed amount invested in the fundraise transaction currency. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid.
  - `beneficialEntityId` (string, optional, nullable) — Investment firm entity receiving the rollup attribution.
  - `fundManagerRelationshipId` (integer, optional, nullable) — Fund-manager relationship id when the attribution rolls up through a managed fund.
  - `recordedEntityId` (string, optional, nullable) — Entity recorded directly on the fundraise investor join.
  - `round` (object, optional, nullable) — Round label for the attributed participation
    - `round` (string, required)
- `investorCount` (integer, optional, nullable) — Source-reported number of investors in the round. This can exceed the identified investor joins when a source reports a total without naming every investor.
- `round` (string, optional, nullable)
- `updatedAt` (datetime, optional, nullable)
- `valuationPostMoney` (long, optional, nullable)
- `valuationPreMoney` (long, optional, nullable)

## Examples

**Request**

```json
{
  "dateAnnounced": "2024-01-15T09:30:00Z"
}
```

**Response**

```json
{
  "id": "string",
  "sourceAttribution": [
    {
      "attributionType": "direct",
      "joinId": "string",
      "leadInvestor": true,
      "transactionId": "string",
      "amountInvested": 1.1,
      "beneficialEntityId": "string",
      "fundManagerRelationshipId": 1,
      "recordedEntityId": "string",
      "round": {
        "round": "string"
      }
    }
  ],
  "amountRaised": 1,
  "createdAt": "2024-01-15T09:30:00Z",
  "currency": "string",
  "dataConfidence": "High",
  "dateAnnounced": "2024-01-15T09:30:00Z",
  "dateFundingComplete": "2024-01-15T09:30:00Z",
  "dateInvestorExit": "2024-01-15T09:30:00Z",
  "entity": {
    "core": {
      "id": "string",
      "image": {
        "isMonogram": true,
        "logo": "string",
        "logoSquare": "string"
      },
      "nameAlias": [
        {
          "name": "Bun",
          "displayable": true,
          "type": "alternativeDba"
        }
      ],
      "nameBrand": "string",
      "slug": "aventure-vc",
      "createdAt": "2024-01-15T09:30:00Z",
      "defaultCurrency": "string",
      "foundedYear": 1,
      "lastModifiedAt": "2024-01-15T09:30:00Z",
      "nameLegal": "string",
      "operatingStatus": "string",
      "publicId": "eV1StGXR8Z5a",
      "publicUrl": "string",
      "sitemap": {
        "hasAnalysis": true,
        "hasEmployees": true,
        "hasFundraising": true,
        "hasNews": true,
        "productServiceSlug": [
          "string"
        ],
        "hasAcquisitions": false
      },
      "typeRecord": "Company",
      "updatedAt": "2024-01-15T09:30:00Z"
    },
    "fundingDetail": {
      "fundingRoundCount": 1,
      "investorCount": 1,
      "totalRaised": 1.1,
      "latestValuation": 1.1,
      "mostRecentAmount": 1.1,
      "mostRecentDate": "2023-01-15",
      "stage": "Angel"
    }
  },
  "investorAttribution": {
    "attributionType": "direct",
    "joinId": "string",
    "leadInvestor": true,
    "transactionId": "string",
    "amountInvested": 1.1,
    "beneficialEntityId": "string",
    "fundManagerRelationshipId": 1,
    "recordedEntityId": "string",
    "round": {
      "round": "string"
    }
  },
  "investorCount": 1,
  "round": "string",
  "updatedAt": "2024-01-15T09:30:00Z",
  "valuationPostMoney": 1,
  "valuationPreMoney": 1
}
```

**SDK Code**

```python
import requests

url = "https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId"

querystring = {"actorType":"agent","agentChassis":"codex-cli","id":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","slug":"acme-corp","sourceDetail":"aventure.vc","sourceProvider":"TechCrunch","sourceProviderId":"tc-2026-05-20-example-round","sourceProviderSlug":"example-round","sourceType":"requestChangeForm"}

payload = "{\n  \"dateAnnounced\": \"2024-01-15T09:30:00Z\"\n}"
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/merge-patch+json"
}

response = requests.patch(url, data=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm';
const options = {
  method: 'PATCH',
  headers: {
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/merge-patch+json'
  },
  body: '{\n  "dateAnnounced": "2024-01-15T09:30:00Z"\n}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm"

	payload := strings.NewReader("{\n  \"dateAnnounced\": \"2024-01-15T09:30:00Z\"\n}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/merge-patch+json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/merge-patch+json'
request.body = "{\n  \"dateAnnounced\": \"2024-01-15T09:30:00Z\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/merge-patch+json")
  .body("{\n  \"dateAnnounced\": \"2024-01-15T09:30:00Z\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm', [
  'body' => '{
  "dateAnnounced": "2024-01-15T09:30:00Z"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/merge-patch+json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm");
var request = new RestRequest(Method.PATCH);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/merge-patch+json");
request.AddParameter("application/merge-patch+json", "{\n  \"dateAnnounced\": \"2024-01-15T09:30:00Z\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/merge-patch+json"
]

let postData = NSData(data: "{
  "dateAnnounced": "2024-01-15T09:30:00Z"
}".data(using: String.Encoding.utf8)!)

let request = NSMutableURLRequest(url: NSURL(string: "https://api.aventure.vc/v1/entities/detail/fundraise-rounds/transactionId?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```