curl --request POST \
--url https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"actions": {
"baseUrls": [
"https://www.example.com/hubspot"
]
},
"display": {
"properties": [
{
"dataType": "STRING",
"label": "Pets Name",
"name": "pet_name"
}
]
},
"fetch": {
"objectTypes": [
{
"name": "contacts",
"propertiesToSend": [
"email",
"firstname"
]
}
],
"targetUrl": "https://www.example.com/hubspot/target"
},
"title": "PetSpot"
}
'import requests
url = "https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}"
payload = {
"actions": { "baseUrls": ["https://www.example.com/hubspot"] },
"display": { "properties": [
{
"dataType": "STRING",
"label": "Pets Name",
"name": "pet_name"
}
] },
"fetch": {
"objectTypes": [
{
"name": "contacts",
"propertiesToSend": ["email", "firstname"]
}
],
"targetUrl": "https://www.example.com/hubspot/target"
},
"title": "PetSpot"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
actions: {baseUrls: ['https://www.example.com/hubspot']},
display: {properties: [{dataType: 'STRING', label: 'Pets Name', name: 'pet_name'}]},
fetch: {
objectTypes: [{name: 'contacts', propertiesToSend: ['email', 'firstname']}],
targetUrl: 'https://www.example.com/hubspot/target'
},
title: 'PetSpot'
})
};
fetch('https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'actions' => [
'baseUrls' => [
'https://www.example.com/hubspot'
]
],
'display' => [
'properties' => [
[
'dataType' => 'STRING',
'label' => 'Pets Name',
'name' => 'pet_name'
]
]
],
'fetch' => [
'objectTypes' => [
[
'name' => 'contacts',
'propertiesToSend' => [
'email',
'firstname'
]
]
],
'targetUrl' => 'https://www.example.com/hubspot/target'
],
'title' => 'PetSpot'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}"
payload := strings.NewReader("{\n \"actions\": {\n \"baseUrls\": [\n \"https://www.example.com/hubspot\"\n ]\n },\n \"display\": {\n \"properties\": [\n {\n \"dataType\": \"STRING\",\n \"label\": \"Pets Name\",\n \"name\": \"pet_name\"\n }\n ]\n },\n \"fetch\": {\n \"objectTypes\": [\n {\n \"name\": \"contacts\",\n \"propertiesToSend\": [\n \"email\",\n \"firstname\"\n ]\n }\n ],\n \"targetUrl\": \"https://www.example.com/hubspot/target\"\n },\n \"title\": \"PetSpot\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"actions\": {\n \"baseUrls\": [\n \"https://www.example.com/hubspot\"\n ]\n },\n \"display\": {\n \"properties\": [\n {\n \"dataType\": \"STRING\",\n \"label\": \"Pets Name\",\n \"name\": \"pet_name\"\n }\n ]\n },\n \"fetch\": {\n \"objectTypes\": [\n {\n \"name\": \"contacts\",\n \"propertiesToSend\": [\n \"email\",\n \"firstname\"\n ]\n }\n ],\n \"targetUrl\": \"https://www.example.com/hubspot/target\"\n },\n \"title\": \"PetSpot\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"actions\": {\n \"baseUrls\": [\n \"https://www.example.com/hubspot\"\n ]\n },\n \"display\": {\n \"properties\": [\n {\n \"dataType\": \"STRING\",\n \"label\": \"Pets Name\",\n \"name\": \"pet_name\"\n }\n ]\n },\n \"fetch\": {\n \"objectTypes\": [\n {\n \"name\": \"contacts\",\n \"propertiesToSend\": [\n \"email\",\n \"firstname\"\n ]\n }\n ],\n \"targetUrl\": \"https://www.example.com/hubspot/target\"\n },\n \"title\": \"PetSpot\"\n}"
response = http.request(request)
puts response.read_body{
"actions": {
"baseUrls": [
"https://www.example.com/hubspot"
]
},
"auditHistory": [
{
"applicationId": 123,
"changedAt": 123,
"initiatingUserId": 123,
"objectTypeId": 123
}
],
"display": {
"properties": [
{
"label": "<string>",
"name": "<string>",
"options": [
{
"label": "<string>",
"name": "<string>"
}
]
}
]
},
"fetch": {
"objectTypes": [
{
"propertiesToSend": [
"<string>"
]
}
],
"targetUrl": "<string>"
},
"id": "<string>",
"title": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Create a CRM card
Defines a new card that will become active on an account when this app is installed.
curl --request POST \
--url https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"actions": {
"baseUrls": [
"https://www.example.com/hubspot"
]
},
"display": {
"properties": [
{
"dataType": "STRING",
"label": "Pets Name",
"name": "pet_name"
}
]
},
"fetch": {
"objectTypes": [
{
"name": "contacts",
"propertiesToSend": [
"email",
"firstname"
]
}
],
"targetUrl": "https://www.example.com/hubspot/target"
},
"title": "PetSpot"
}
'import requests
url = "https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}"
payload = {
"actions": { "baseUrls": ["https://www.example.com/hubspot"] },
"display": { "properties": [
{
"dataType": "STRING",
"label": "Pets Name",
"name": "pet_name"
}
] },
"fetch": {
"objectTypes": [
{
"name": "contacts",
"propertiesToSend": ["email", "firstname"]
}
],
"targetUrl": "https://www.example.com/hubspot/target"
},
"title": "PetSpot"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
actions: {baseUrls: ['https://www.example.com/hubspot']},
display: {properties: [{dataType: 'STRING', label: 'Pets Name', name: 'pet_name'}]},
fetch: {
objectTypes: [{name: 'contacts', propertiesToSend: ['email', 'firstname']}],
targetUrl: 'https://www.example.com/hubspot/target'
},
title: 'PetSpot'
})
};
fetch('https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'actions' => [
'baseUrls' => [
'https://www.example.com/hubspot'
]
],
'display' => [
'properties' => [
[
'dataType' => 'STRING',
'label' => 'Pets Name',
'name' => 'pet_name'
]
]
],
'fetch' => [
'objectTypes' => [
[
'name' => 'contacts',
'propertiesToSend' => [
'email',
'firstname'
]
]
],
'targetUrl' => 'https://www.example.com/hubspot/target'
],
'title' => 'PetSpot'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}"
payload := strings.NewReader("{\n \"actions\": {\n \"baseUrls\": [\n \"https://www.example.com/hubspot\"\n ]\n },\n \"display\": {\n \"properties\": [\n {\n \"dataType\": \"STRING\",\n \"label\": \"Pets Name\",\n \"name\": \"pet_name\"\n }\n ]\n },\n \"fetch\": {\n \"objectTypes\": [\n {\n \"name\": \"contacts\",\n \"propertiesToSend\": [\n \"email\",\n \"firstname\"\n ]\n }\n ],\n \"targetUrl\": \"https://www.example.com/hubspot/target\"\n },\n \"title\": \"PetSpot\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"actions\": {\n \"baseUrls\": [\n \"https://www.example.com/hubspot\"\n ]\n },\n \"display\": {\n \"properties\": [\n {\n \"dataType\": \"STRING\",\n \"label\": \"Pets Name\",\n \"name\": \"pet_name\"\n }\n ]\n },\n \"fetch\": {\n \"objectTypes\": [\n {\n \"name\": \"contacts\",\n \"propertiesToSend\": [\n \"email\",\n \"firstname\"\n ]\n }\n ],\n \"targetUrl\": \"https://www.example.com/hubspot/target\"\n },\n \"title\": \"PetSpot\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/v3/extensions/cards-dev/{appId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"actions\": {\n \"baseUrls\": [\n \"https://www.example.com/hubspot\"\n ]\n },\n \"display\": {\n \"properties\": [\n {\n \"dataType\": \"STRING\",\n \"label\": \"Pets Name\",\n \"name\": \"pet_name\"\n }\n ]\n },\n \"fetch\": {\n \"objectTypes\": [\n {\n \"name\": \"contacts\",\n \"propertiesToSend\": [\n \"email\",\n \"firstname\"\n ]\n }\n ],\n \"targetUrl\": \"https://www.example.com/hubspot/target\"\n },\n \"title\": \"PetSpot\"\n}"
response = http.request(request)
puts response.read_body{
"actions": {
"baseUrls": [
"https://www.example.com/hubspot"
]
},
"auditHistory": [
{
"applicationId": 123,
"changedAt": 123,
"initiatingUserId": 123,
"objectTypeId": 123
}
],
"display": {
"properties": [
{
"label": "<string>",
"name": "<string>",
"options": [
{
"label": "<string>",
"name": "<string>"
}
]
}
]
},
"fetch": {
"objectTypes": [
{
"propertiesToSend": [
"<string>"
]
}
],
"targetUrl": "<string>"
},
"id": "<string>",
"title": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The id of the app to contain the Legacy CRM Card
Body
State of card definition to be created
Configuration for custom user actions on cards.
Show child attributes
Show child attributes
{
"baseUrls": ["https://www.example.com/hubspot"]
}
Configuration for displayed info on a card
Show child attributes
Show child attributes
Configuration for this card's data fetch request.
Show child attributes
Show child attributes
The top-level title for this card, displayed to users in the CRM UI. It is a string.
Response
successful operation
Configuration for custom user actions on cards.
Show child attributes
Show child attributes
{
"baseUrls": ["https://www.example.com/hubspot"]
}
A list of actions performed on the card, including creation, deletion, and updates.
Show child attributes
Show child attributes
Configuration for displayed info on a card
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The unique id of the card.
The top-level title for this card. Displayed to users in the CRM UI.
The date and time when the card was created.
The date and time when the card was last updated.
Was this page helpful?