> For a complete page index, fetch https://developer.close.com/llms.txt

# Create a new Custom Activity instance

POST https://api.close.com/api/v1/activity/custom/
Content-Type: application/json

Custom Activity instances will be created by default with the 'published' status. All required fields will be validated in this status. To create an activity without setting all required fields, you can use the "draft" status.

A Custom Activity can be pinned or unpinned by setting the `pinned` field to `true` or `false` when creating or updating a Custom Activity.

Reference: https://developer.close.com/api/resources/activities/custom-activities/create

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: Close API
  version: 1.0.0
paths:
  /activity/custom/:
    post:
      operationId: create
      summary: Create a new Custom Activity instance
      description: >-
        Custom Activity instances will be created by default with the
        'published' status. All required fields will be validated in this
        status. To create an activity without setting all required fields, you
        can use the "draft" status.


        A Custom Activity can be pinned or unpinned by setting the `pinned`
        field to `true` or `false` when creating or updating a Custom Activity.
      tags:
        - subpackage_activitiesCustomActivities
      parameters:
        - name: Authorization
          in: header
          description: Use your API key as the username and leave the password empty.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/activities.custom_activities_create_Response_200
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                description: Any type
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: Any type
        '404':
          description: Not found
          content:
            application/json:
              schema:
                description: Any type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomActivity'
servers:
  - url: https://api.close.com/api/v1
components:
  schemas:
    CreateCustomActivityStatus:
      type: string
      enum:
        - draft
        - published
      title: CreateCustomActivityStatus
    CreateCustomActivity:
      type: object
      properties:
        activity_at:
          type:
            - string
            - 'null'
          format: date-time
        contact_id:
          type:
            - string
            - 'null'
        created_by_id:
          type:
            - string
            - 'null'
        custom_activity_type_id:
          type: string
        custom_fields:
          type:
            - object
            - 'null'
          additionalProperties:
            description: Any type
        date_created:
          type:
            - string
            - 'null'
          format: date-time
        lead_id:
          type: string
        organization_id:
          type:
            - string
            - 'null'
        pinned:
          type:
            - boolean
            - 'null'
        status:
          $ref: '#/components/schemas/CreateCustomActivityStatus'
        user_id:
          type:
            - string
            - 'null'
      required:
        - custom_activity_type_id
        - lead_id
      title: CreateCustomActivity
    activities.custom_activities_create_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: activities.custom_activities_create_Response_200
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: basic
      description: Use your API key as the username and leave the password empty.
    OAuth2:
      type: http
      scheme: bearer

```

## SDK Code Examples

```python activities.custom_activities_create_example
import requests

url = "https://api.close.com/api/v1/activity/custom/"

payload = {
    "custom_activity_type_id": "actitype_1h5m6uHM9BZOpwVhyRJb4Y",
    "lead_id": "lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP",
    "pinned": True,
    "custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S": "thedarknight@close.com",
    "custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g": "Yes"
}
headers = {
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, auth=("<CLOSE_API_KEY>", ""))

print(response.json())
```

```javascript activities.custom_activities_create_example
const url = 'https://api.close.com/api/v1/activity/custom/';
const credentials = btoa("<CLOSE_API_KEY>:");

const options = {
  method: 'POST',
  headers: {Authorization: `Basic ${credentials}`, 'Content-Type': 'application/json'},
  body: '{"custom_activity_type_id":"actitype_1h5m6uHM9BZOpwVhyRJb4Y","lead_id":"lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP","pinned":true,"custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S":"thedarknight@close.com","custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g":"Yes"}'
};

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

```go activities.custom_activities_create_example
package main

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

func main() {

	url := "https://api.close.com/api/v1/activity/custom/"

	payload := strings.NewReader("{\n  \"custom_activity_type_id\": \"actitype_1h5m6uHM9BZOpwVhyRJb4Y\",\n  \"lead_id\": \"lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP\",\n  \"pinned\": true,\n  \"custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S\": \"thedarknight@close.com\",\n  \"custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g\": \"Yes\"\n}")

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

	req.SetBasicAuth("<CLOSE_API_KEY>", "")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby activities.custom_activities_create_example
require 'uri'
require 'net/http'

url = URI("https://api.close.com/api/v1/activity/custom/")

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

request = Net::HTTP::Post.new(url)
request.basic_auth("<CLOSE_API_KEY>", "")
request["Content-Type"] = 'application/json'
request.body = "{\n  \"custom_activity_type_id\": \"actitype_1h5m6uHM9BZOpwVhyRJb4Y\",\n  \"lead_id\": \"lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP\",\n  \"pinned\": true,\n  \"custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S\": \"thedarknight@close.com\",\n  \"custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g\": \"Yes\"\n}"

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

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

HttpResponse<String> response = Unirest.post("https://api.close.com/api/v1/activity/custom/")
  .basicAuth("<CLOSE_API_KEY>", "")
  .header("Content-Type", "application/json")
  .body("{\n  \"custom_activity_type_id\": \"actitype_1h5m6uHM9BZOpwVhyRJb4Y\",\n  \"lead_id\": \"lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP\",\n  \"pinned\": true,\n  \"custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S\": \"thedarknight@close.com\",\n  \"custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g\": \"Yes\"\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.close.com/api/v1/activity/custom/', [
  'body' => '{
  "custom_activity_type_id": "actitype_1h5m6uHM9BZOpwVhyRJb4Y",
  "lead_id": "lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP",
  "pinned": true,
  "custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S": "thedarknight@close.com",
  "custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g": "Yes"
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
    'auth' => ['<CLOSE_API_KEY>', ''],
]);

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

```csharp activities.custom_activities_create_example
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://api.close.com/api/v1/activity/custom/");
client.Authenticator = new HttpBasicAuthenticator("<CLOSE_API_KEY>", "");
var request = new RestRequest(Method.POST);

request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"custom_activity_type_id\": \"actitype_1h5m6uHM9BZOpwVhyRJb4Y\",\n  \"lead_id\": \"lead_p9bdo1sTVDvc81drMF1IxJBSHiLFZqaABYRu7ZHuxhP\",\n  \"pinned\": true,\n  \"custom.cf_UpyNBvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jg64S\": \"thedarknight@close.com\",\n  \"custom.cf_cSh3fWT3rEJ1BFSezme2YAG6bPrZV5wUWKKrW4iN19g\": \"Yes\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```