Farmbrite Crops & Plantings API

Plant types represent the basic details of your crops, including the type of plant, variety and default configuration details for plantings that you create from this type of plant through the Farmbrite app / UI.

GitHub OpenAPI

Operations 5

POST /plants Create a Plant Type #
GET /plants List Plant Types #
GET /plants/{plant_id} Retrieve a Plant Type #
PUT /plants/{plant_id} Update a Plant Type #
DELETE /plants/{plant_id} Delete a Plant Type #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/farmbrite:farmbrite-crops-plantings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

farmbrite-crops-plantings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Farmbrite API Developers Documentation Crops & Plantings API
  description: '# Overview


    Welcome to the Farmbrite API. You can find out more about Farmbrite at

    www.farmbrite.com


    If you need help, check out our help center at help.farmbrite.com or email us at dev@farmbrite.com. ## API Reference


    The Farmbrite API allows authorized users programatic access to their account data in order to facilitate the integration of this data with other systems and service. The API is organized around REST standards. The API uses resource-oriented URLs and returns JSON-encoded responses. It uses standard HTTP response codes, authentication, and verbs. > Base URL


    ```

    https://api.farmbrite.com/v1


    ```


    # Authentication


    Farmbrite offers 2 authentication options for accessing the API both utilizing Personal Access Tokens (PATs) for enabling access to the API. Access Tokens (API Keys) are associated with an individual user in your account and inherit that user''s role and permissions. You can find the Access Token on the user profile page under API Key. When building an integration we recommend setting up a separate API user for the integration and changing the API KEY on a regular basis. Remember to keep your Access Tokens secret; treat them just like passwords! They act on your behalf when interacting with the API, with the same permissions and access as the user has. _Don''t hardcode them into your programs_. Instead, choose to store them as environment variables. ### Bearer Token


    To make a request to the API include the Authorization Bearer header with your request and include your Access Token (API KEY) as the value. Access Token and API KEY are used interchangeably through out the documentation. > Example cURL request authenticating with Bearer Token authentication


    ```

    curl https://api.farmbrite.com/v1/tasks \

    -H "Authorization: Bearer ACCESS_TOKEN"


    ```


    ### API Key


    Alternatively to using the Bearer Token authorization method, you can provide an API KEY as a header with your request. Use the header `api_key` with a value of your Access Token (API KEY). > Example cURL request authenticating with API Key header authentication


    ```

    curl https://api.farmbrite.com/v1/tasks \

    -H "api_key: ACCESS_TOKEN"


    ```


    # Errors


    Sadly, sometimes requests to the API fail. Failures can occur for a wide range of reasons. In all cases, the API should return an HTTP Status Code indicating the nature of the failure. | Code | Meaning | Description |

    | --- | --- | --- |

    | 200 | Success | The request was successful. If applicable the data it will be available in the data field at the top level of the response body. |

    | 400 | Bad Request | Typically caused by a missing or malformed parameter. Check the documentation and your request and try again. |

    | 401 | Unauthorized | No access token or an invalid access token was provided with the request. The error can also occur if the user or account is invalid or does not have access to this resource. |

    | 403 | Forbidden | The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you access resources that the user or account does not have access to. |

    | 404 | Not Found | Either the method and path supplied do not specify a known action or the object related to the request does not exist. |

    | 429 | Too Many Requests | You have exceeded one of the rate limits in the API. See the Rate Limits section for more information. |

    | 500 | Internal Server Error | There was a problem on Farmbrite''s side which was logged and reported to our technical team. You can retry, but if the problem continues please contact support. |


    Details about errors can sometimes also be found in the ''message'' property at the root level of the JSON response body. # Pagination


    In order to optimize performance, all list methods in the API will limit the total response data to a certain number of records and return the data in chunks (pages). API responses will include information about the total records available, the current page and total pages.'
  version: 1.0.0
  x-logo:
    url: https://static.farmbrite.com/assets/www/images/logo.png
    backgroundColor: '#FFFFFF'
    altText: Farmbrite
  termsOfService: https://www.farmbrite.com/terms
  contact:
    name: Farmbrite
    url: https://developers.farmbrite.com
    email: dev@farmbrite.com
servers:
- url: https://api.farmbrite.com/v1
security:
- bearerAuth: []
tags:
- name: Crops & Plantings
  description: Plant types represent the basic details of your crops, including the type of plant, variety and default configuration details for plantings that you create from this type of plant through the Farmbrite app / UI.
paths:
  /plants:
    post:
      tags:
      - Crops & Plantings
      summary: Create a Plant Type
      description: "Create a plant type\n\n### Parameters\n\n**type** `REQUIRED`\n\nType of plant/crop. For example; Carrot, Tomato, Hops, Corn, etc\n\n---\n\n**days_to_maturity** `OPTIONAL`\n\nNumeric value for days to maturity (DTM). For direct sow plantings this is the days from planting to harvest, for transplants it's the days from planting in the ground to harvest.\n\n---\n\n**spacing** `OPTIONAL`\n\nInches/Centimeter (based on account setting) spacing between plants\n\n---\n\n\uFEFF**row_spacing** `OPTIONAL`\n\nInches/Centimeter (based on account setting) spacing between rows\n\n---\n\n**description** `OPTIONAL`\n\nText description of the plant type\n\n---\n\n**harvest_unit** `OPTIONAL`\n\nThe unit used to record harvests for this plant type. Supported values are any of the following:\n\n> \"Bales\", \"Barrels\", \"Bunches\", \"Bushels\", \"Dozen\", \"Fluid Ounces\", \"Gallons\", \"Grams\", \"Head\", \"Kilograms\", \"Kiloliter\", \"Liter\", \"Milliliter\", \"Ounces\", \"Pounds\", \"Quantity\", \"Quarts\", \"Tonnes\", \"Tons\"\n\nThe default is to store harvests as `Quantity`\n\n---\n\n**is_perennial** `OPTIONAL`\n\nBoolean value for if plant type if perennial or not. Defaults to `false`.\n\n---\n\n**market_price** `OPTIONAL`\n\nEstimated / average market value for each harvest unit. Used to estimate harvest revenues.\n\n---\n\n**planting_method** `OPTIONAL`\n\nDefault planting method. Supported options are:\n\n> \"Direct Sow\", \"Start in Trays, Transplant in Ground\", \"Transplant\", \"Container\", \"Root Stock\", \"Bulbs\", \"Grafting\",\"Other\"\n\n---\n\n**seed_company** `OPTIONAL`\n\nDefault seed company to be set for each new planting created from this plant type.\n\n---\n\n**variety** `OPTIONAL`\n\nPlant variety, for example: Beef master, Russet, etc.\n\n---\n\n**weeks_before_frost** `OPTIONAL`\n\nThe number of weeks before the last frost that seeds should be started in trays or direct sown (depending on planting method)\n\n---\n\n**days_to_emerge** `OPTIONAL`\n\nHow many days (numeric value) for the plant to germinate on average\n\n---\n\n**days_to_flower**`OPTIONAL`\n\nHow many days (numeric value) for the plant to flower on average\n\n---\n\n**loss_rate** `OPTIONAL`\n\nA numeric value between 0-100 that represents the estimated percent of plants lost from seed to harvest. This is used when calculating estimated yields.\n\n---\n\n**internal_id** `OPTIONAL`\n\nCustom text for internal ID used to identify the plant type\n\n---\n\n**light_profile** `OPTIONAL`\n\nIdeal light profile for plant type. Supported options are:\n\n> \"Full Sun\", \"Full to Part Sun\", \"Partial Sun\", \"Sun to Part Shade\", \"Partial Shade\", \"Full Shade\"\n\n---\n\n**soil_conditions** `OPTIONAL`\n\nIdeal soil conditions for plant type. Supported options are:\n\n> \"Chalky\", \"Clay\", \"Loamy\", \"Peaty\", \"Sandy\", \"Silty\"\n\n---\n\n**planting_depth** `OPTIONAL`\n\nText describing planting depth for seeds. For example 3/4\" or 1-2 inches.\n\n---\n\n**direct_sow** `OPTIONAL`\n\nBoolean value indicating if plant type is direct sow or not.\n\n---\n\n**start_indoors** `OPTIONAL`\n\nBoolean value indicating if plant type should be started indoors or not.\n\n---\n\n**yield_per_100_ft** `OPTIONAL`\n\nThe average or expected yield (in harvest units) per 100 foot of plantings. This is used to estimate the expected yield for a planting when planting in beds.\n\n---\n\n**yield_per_area** `OPTIONAL`\n\nThe average or expected yield (in harvest units) per Acre/Hectare (based on account setting). This is used to estimate the expected yield for a planting when planting by area, not in a bed.\n\n---\n\n**botanical_name** `OPTIONAL`\n\nScientific / botanical name of the plant type."
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                days_to_maturity: 20
                description: ''
                harvest_unit: pounds
                is_perennial: false
                market_price: 4
                planting_method: Direct Sow
                seed_company: ''
                spacing: 2
                type: Plant Type
                variety: Variety
                weeks_before_frost: 4
                days_to_emerge: 30
                internal_id: Custom ID
                light_profile: Full Sun
                planting_depth: 1/2 an inch
                row_spacing: 6
                direct_sow: true
                start_indoors: false
                yield_per_100_ft: 100
                yield_per_area: 30000
                botanical_name: Botanical Name
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: postPlants
      x-operation-id-source: derived
    get:
      tags:
      - Crops & Plantings
      summary: List Plant Types
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              example:
                data:
                - id: GUID
                  botanical_name: ''
                  created_at: '2017-01-15 16:28:15'
                  days_to_emerge: 30
                  days_to_maturity: 60
                  description: ''
                  harvest_unit: pounds
                  harvest_window: 90
                  internal_id: CARORG
                  is_perennial: false
                  light_profile: ''
                  loss_rate: 25
                  market_price: 3.5
                  planting_depth: '1'
                  planting_method: Direct Sow
                  row_spacing: 1.5
                  spacing: 1
                  type: Carrot
                  type_key: null
                  updated_at: '2022-04-27 16:16:03'
                  variety: Orange
                  weeks_before_frost: 10
                  yield_per_100_ft: 100
                  yield_per_area: 30000
      operationId: getPlants
      x-operation-id-source: derived
  /plants/{plant_id}:
    get:
      tags:
      - Crops & Plantings
      summary: Retrieve a Plant Type
      parameters:
      - name: plant_id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              example:
                id: GUID
                botanical_name: ''
                created_at: '2017-01-15 16:28:15'
                days_to_emerge: 30
                days_to_maturity: 60
                description: ''
                harvest_unit: pounds
                harvest_window: 90
                internal_id: CARORG
                is_perennial: false
                light_profile: ''
                loss_rate: 25
                market_price: 3.5
                planting_depth: '1'
                planting_method: Direct Sow
                row_spacing: 1.5
                spacing: 1
                type: Carrot
                type_key: null
                updated_at: '2022-04-27 16:16:03'
                variety: Orange
                weeks_before_frost: 10
                yield_per_100_ft: 100
                yield_per_area: 30000
      operationId: getPlantsByPlantId
      x-operation-id-source: derived
    put:
      tags:
      - Crops & Plantings
      summary: Update a Plant Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                days_to_maturity: 25
                spacing: 4
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: plant_id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: putPlantsByPlantId
      x-operation-id-source: derived
    delete:
      tags:
      - Crops & Plantings
      summary: Delete a Plant Type
      parameters:
      - name: plant_id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
      operationId: deletePlantsByPlantId
      x-operation-id-source: derived
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer