[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FVBDAWZVE3T7AFD09QY0SX":3,"skill-same:01M6FVBDAWZVE3T7AFD09QY0SX":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6FVBDAWZVE3T7AFD09QY0SX","hubspot",null,"HubSpot CRM and CMS API integration for contacts, companies, deals, owners, and content management.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fkwall1\u002Fhubspot\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29],"content","integration","cms","api","owners","access","management","api integration","crm","token","hubspot crm","contacts","2026-11-10 10:12:30",false,"---\nname: hubspot\ndescription: HubSpot CRM and CMS API integration for contacts, companies, deals, owners, and content management.\nmetadata: {\"clawdbot\":{\"secrets\":[\"HUBSPOT_ACCESS_TOKEN\"]}}\n---\n\n# HubSpot Skill\n\nInteract with HubSpot CRM and CMS via the REST API.\n\n## Setup\n\nSet your HubSpot Private App access token:\n```\nHUBSPOT_ACCESS_TOKEN=pat-na2-xxxxx\n```\n\n## API Base\n\nAll endpoints use: `https:\u002F\u002Fapi.hubapi.com`\n\nAuthorization header: `Bearer $HUBSPOT_ACCESS_TOKEN`\n\n---\n\n## CRM Objects\n\n### Contacts\n\n**Create contact:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"email\":\"test@example.com\",\"firstname\":\"Test\",\"lastname\":\"User\",\"phone\":\"555-1234\",\"company\":\"Acme Inc\",\"jobtitle\":\"Manager\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\" | jq\n```\n\n**List contacts:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts?limit=10\" | jq\n```\n\n**Search contacts:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"email\",\"operator\":\"CONTAINS_TOKEN\",\"value\":\"example.com\"}]}],\"limit\":10}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fsearch\" | jq\n```\n\n**Get contact by ID:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{contactId}?properties=email,firstname,lastname,phone,company\" | jq\n```\n\n**Get contact by email:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{email}?idProperty=email\" | jq\n```\n\n### Companies\n\n**List companies:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcompanies?limit=10&properties=name,domain,industry\" | jq\n```\n\n**Search companies:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"name\",\"operator\":\"CONTAINS_TOKEN\",\"value\":\"acme\"}]}],\"limit\":10}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcompanies\u002Fsearch\" | jq\n```\n\n**Get company by ID:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcompanies\u002F{companyId}?properties=name,domain,industry,numberofemployees\" | jq\n```\n\n### Deals\n\n**Create deal:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"dealname\":\"New Deal\",\"amount\":\"10000\",\"closedate\":\"2026-06-01\",\"description\":\"Deal notes here\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\" | jq\n```\n\n**List deals:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals?limit=10&properties=dealname,amount,dealstage,closedate\" | jq\n```\n\n**Search deals:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"dealstage\",\"operator\":\"EQ\",\"value\":\"closedwon\"}]}],\"limit\":10}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\u002Fsearch\" | jq\n```\n\n**Get deal by ID:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\u002F{dealId}?properties=dealname,amount,dealstage,closedate,pipeline\" | jq\n```\n\n### Owners\n\n**List owners (users):**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fowners\" | jq\n```\n\n---\n\n## Update & Assign Owner\n\n**Update contact properties:**\n```bash\ncurl -s -X PATCH -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"phone\":\"555-9999\",\"jobtitle\":\"Director\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{contactId}\" | jq\n```\n\n**Assign owner to contact:**\n```bash\ncurl -s -X PATCH -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"hubspot_owner_id\":\"{ownerId}\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{contactId}\" | jq\n```\n\n**Assign owner to deal:**\n```bash\ncurl -s -X PATCH -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"hubspot_owner_id\":\"{ownerId}\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\u002F{dealId}\" | jq\n```\n\n---\n\n## Associations\n\n**Get associated contacts for a company:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv4\u002Fobjects\u002Fcompanies\u002F{companyId}\u002Fassociations\u002Fcontacts\" | jq\n```\n\n**Get associated deals for a contact:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv4\u002Fobjects\u002Fcontacts\u002F{contactId}\u002Fassociations\u002Fdeals\" | jq\n```\n\n**Create association (deal to contact):**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"inputs\":[{\"from\":{\"id\":\"{dealId}\"},\"to\":{\"id\":\"{contactId}\"},\"types\":[{\"associationCategory\":\"HUBSPOT_DEFINED\",\"associationTypeId\":3}]}]}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv4\u002Fassociations\u002Fdeals\u002Fcontacts\u002Fbatch\u002Fcreate\" | jq\n```\n\nCommon association type IDs:\n- 3: Deal to Contact\n- 5: Deal to Company\n- 1: Contact to Company\n\n---\n\n## Properties (Schema)\n\n**List contact properties:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fproperties\u002Fcontacts\" | jq '.results[].name'\n```\n\n**List company properties:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fproperties\u002Fcompanies\" | jq '.results[].name'\n```\n\n**List deal properties:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fproperties\u002Fdeals\" | jq '.results[].name'\n```\n\n---\n\n## CMS\n\n### Pages\n\n**List site pages:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcms\u002Fv3\u002Fpages\u002Fsite-pages?limit=10\" | jq\n```\n\n**List landing pages:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcms\u002Fv3\u002Fpages\u002Flanding-pages?limit=10\" | jq\n```\n\n### Domains\n\n**List domains:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcms\u002Fv3\u002Fdomains\" | jq\n```\n\n---\n\n## Files\n\n**List files:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Ffiles\u002Fv3\u002Ffiles?limit=10\" | jq\n```\n\n**Search files:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Ffiles\u002Fv3\u002Ffiles\u002Fsearch?name=logo\" | jq\n```\n\n---\n\n## Search Operators\n\nFor search endpoints, use these operators in filters:\n\n| Operator | Description |\n|----------|-------------|\n| `EQ` | Equal to |\n| `NEQ` | Not equal to |\n| `LT` | Less than |\n| `LTE` | Less than or equal |\n| `GT` | Greater than |\n| `GTE` | Greater than or equal |\n| `CONTAINS_TOKEN` | Contains word |\n| `NOT_CONTAINS_TOKEN` | Does not contain word |\n| `HAS_PROPERTY` | Has a value |\n| `NOT_HAS_PROPERTY` | Does not have a value |\n\n---\n\n## PowerShell Examples\n\nFor Windows\u002FPowerShell, use Invoke-RestMethod:\n\n```powershell\n$headers = @{ \n  \"Authorization\" = \"Bearer $env:HUBSPOT_ACCESS_TOKEN\"\n  \"Content-Type\" = \"application\u002Fjson\" \n}\n\n# List contacts\nInvoke-RestMethod -Uri \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts?limit=10\" -Headers $headers\n\n# Search contacts\n$body = @{\n  filterGroups = @(@{\n    filters = @(@{\n      propertyName = \"email\"\n      operator = \"CONTAINS_TOKEN\"\n      value = \"example.com\"\n    })\n  })\n  limit = 10\n} | ConvertTo-Json -Depth 5\n\nInvoke-RestMethod -Method POST -Uri \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fsearch\" -Headers $headers -Body $body\n```\n\n---\n\n## Notes\n\n- Full CRUD operations supported with appropriate scopes\n- Rate limits: 100 requests per 10 seconds for private apps\n- Pagination: Use `after` parameter from `paging.next.after` for next page\n- Portal ID is in the record URL: `https:\u002F\u002Fapp-na2.hubspot.com\u002Fcontacts\u002F{portalId}\u002Frecord\u002F...`\n","# HubSpot Skill\n\nInteract with HubSpot CRM and CMS via the REST API.\n\n## Setup\n\nSet your HubSpot Private App access token:\n```\nHUBSPOT_ACCESS_TOKEN=pat-na2-xxxxx\n```\n\n## API Base\n\nAll endpoints use: `https:\u002F\u002Fapi.hubapi.com`\n\nAuthorization header: `Bearer $HUBSPOT_ACCESS_TOKEN`\n\n---\n\n## CRM Objects\n\n### Contacts\n\n**Create contact:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"email\":\"test@example.com\",\"firstname\":\"Test\",\"lastname\":\"User\",\"phone\":\"555-1234\",\"company\":\"Acme Inc\",\"jobtitle\":\"Manager\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\" | jq\n```\n\n**List contacts:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts?limit=10\" | jq\n```\n\n**Search contacts:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"email\",\"operator\":\"CONTAINS_TOKEN\",\"value\":\"example.com\"}]}],\"limit\":10}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fsearch\" | jq\n```\n\n**Get contact by ID:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{contactId}?properties=email,firstname,lastname,phone,company\" | jq\n```\n\n**Get contact by email:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{email}?idProperty=email\" | jq\n```\n\n### Companies\n\n**List companies:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcompanies?limit=10&properties=name,domain,industry\" | jq\n```\n\n**Search companies:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"name\",\"operator\":\"CONTAINS_TOKEN\",\"value\":\"acme\"}]}],\"limit\":10}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcompanies\u002Fsearch\" | jq\n```\n\n**Get company by ID:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcompanies\u002F{companyId}?properties=name,domain,industry,numberofemployees\" | jq\n```\n\n### Deals\n\n**Create deal:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"dealname\":\"New Deal\",\"amount\":\"10000\",\"closedate\":\"2026-06-01\",\"description\":\"Deal notes here\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\" | jq\n```\n\n**List deals:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals?limit=10&properties=dealname,amount,dealstage,closedate\" | jq\n```\n\n**Search deals:**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"dealstage\",\"operator\":\"EQ\",\"value\":\"closedwon\"}]}],\"limit\":10}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\u002Fsearch\" | jq\n```\n\n**Get deal by ID:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\u002F{dealId}?properties=dealname,amount,dealstage,closedate,pipeline\" | jq\n```\n\n### Owners\n\n**List owners (users):**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fowners\" | jq\n```\n\n---\n\n## Update & Assign Owner\n\n**Update contact properties:**\n```bash\ncurl -s -X PATCH -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"phone\":\"555-9999\",\"jobtitle\":\"Director\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{contactId}\" | jq\n```\n\n**Assign owner to contact:**\n```bash\ncurl -s -X PATCH -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"hubspot_owner_id\":\"{ownerId}\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002F{contactId}\" | jq\n```\n\n**Assign owner to deal:**\n```bash\ncurl -s -X PATCH -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"properties\":{\"hubspot_owner_id\":\"{ownerId}\"}}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fdeals\u002F{dealId}\" | jq\n```\n\n---\n\n## Associations\n\n**Get associated contacts for a company:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv4\u002Fobjects\u002Fcompanies\u002F{companyId}\u002Fassociations\u002Fcontacts\" | jq\n```\n\n**Get associated deals for a contact:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv4\u002Fobjects\u002Fcontacts\u002F{contactId}\u002Fassociations\u002Fdeals\" | jq\n```\n\n**Create association (deal to contact):**\n```bash\ncurl -s -X POST -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"inputs\":[{\"from\":{\"id\":\"{dealId}\"},\"to\":{\"id\":\"{contactId}\"},\"types\":[{\"associationCategory\":\"HUBSPOT_DEFINED\",\"associationTypeId\":3}]}]}' \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv4\u002Fassociations\u002Fdeals\u002Fcontacts\u002Fbatch\u002Fcreate\" | jq\n```\n\nCommon association type IDs:\n- 3: Deal to Contact\n- 5: Deal to Company\n- 1: Contact to Company\n\n---\n\n## Properties (Schema)\n\n**List contact properties:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fproperties\u002Fcontacts\" | jq '.results[].name'\n```\n\n**List company properties:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fproperties\u002Fcompanies\" | jq '.results[].name'\n```\n\n**List deal properties:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fproperties\u002Fdeals\" | jq '.results[].name'\n```\n\n---\n\n## CMS\n\n### Pages\n\n**List site pages:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcms\u002Fv3\u002Fpages\u002Fsite-pages?limit=10\" | jq\n```\n\n**List landing pages:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcms\u002Fv3\u002Fpages\u002Flanding-pages?limit=10\" | jq\n```\n\n### Domains\n\n**List domains:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Fcms\u002Fv3\u002Fdomains\" | jq\n```\n\n---\n\n## Files\n\n**List files:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Ffiles\u002Fv3\u002Ffiles?limit=10\" | jq\n```\n\n**Search files:**\n```bash\ncurl -s -H \"Authorization: Bearer $HUBSPOT_ACCESS_TOKEN\" \\\n  \"https:\u002F\u002Fapi.hubapi.com\u002Ffiles\u002Fv3\u002Ffiles\u002Fsearch?name=logo\" | jq\n```\n\n---\n\n## Search Operators\n\nFor search endpoints, use these operators in filters:\n\n| Operator | Description |\n|----------|-------------|\n| `EQ` | Equal to |\n| `NEQ` | Not equal to |\n| `LT` | Less than |\n| `LTE` | Less than or equal |\n| `GT` | Greater than |\n| `GTE` | Greater than or equal |\n| `CONTAINS_TOKEN` | Contains word |\n| `NOT_CONTAINS_TOKEN` | Does not contain word |\n| `HAS_PROPERTY` | Has a value |\n| `NOT_HAS_PROPERTY` | Does not have a value |\n\n---\n\n## PowerShell Examples\n\nFor Windows\u002FPowerShell, use Invoke-RestMethod:\n\n```powershell\n$headers = @{ \n  \"Authorization\" = \"Bearer $env:HUBSPOT_ACCESS_TOKEN\"\n  \"Content-Type\" = \"application\u002Fjson\" \n}\n\n# List contacts\nInvoke-RestMethod -Uri \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts?limit=10\" -Headers $headers\n\n# Search contacts\n$body = @{\n  filterGroups = @(@{\n    filters = @(@{\n      propertyName = \"email\"\n      operator = \"CONTAINS_TOKEN\"\n      value = \"example.com\"\n    })\n  })\n  limit = 10\n} | ConvertTo-Json -Depth 5\n\nInvoke-RestMethod -Method POST -Uri \"https:\u002F\u002Fapi.hubapi.com\u002Fcrm\u002Fv3\u002Fobjects\u002Fcontacts\u002Fsearch\" -Headers $headers -Body $body\n```\n\n---\n\n## Notes\n\n- Full CRUD operations supported with appropriate scopes\n- Rate limits: 100 requests per 10 seconds for private apps\n- Pagination: Use `after` parameter from `paging.next.after` for next page\n- Portal ID is in the record URL: `https:\u002F\u002Fapp-na2.hubspot.com\u002Fcontacts\u002F{portalId}\u002Frecord\u002F...`\n",{"name":5,"metadata":35,"description":7},{"clawdbot":36},{"secrets":37},[38],"HUBSPOT_ACCESS_TOKEN","main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fkwall1\u002Fhubspot",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add kbarbel640-del\u002Fskills --skill hubspot",{"tool":52,"command":53},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill hubspot",{"tool":55,"command":56},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill hubspot","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fkwall1\u002Fhubspot\u002FSKILL.md",true,[60],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"_meta.json","REFERENCE","参考文档",266,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fkwall1\u002Fhubspot\u002F_meta.json",[67,96,125,146,152,172],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":78,"publishedAt":30},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[79,80,21,81,82,83,84,85,86,87,88,89,90,91,92,93,94,18,95],"crowd prompting","prompting","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","ai agents",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":107,"publishedAt":30},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[102],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[108,21,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,85,124],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":134,"publishedAt":30},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000021","资料检索与研究",[135,136,137,138,139,140,141,81,142,122,124,143,21,144,145],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":147,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":30},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[150],{"categoryNo":132,"categoryName":133,"taxonomyType":105,"taxonomyTypeDesc":106},[138,137,136,135,145,140,141,81,139,122,124,142,143,21,144],{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":30},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[159,160,161,162,163,164,165,166,167,168,169,170,171],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":182,"publishedAt":30},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[178,179],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":180,"categoryName":181,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000037","律师与法务",[183,184,185,186,81,187,188,39,189,143,190,191,192,193,194,94,195,196,197],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]