Skip to main content
POST
/
projects
Create a project
curl --request POST \
  --url https://app.generalcounsel.ai/api/external/v1/projects \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Vendor: Acme MSA",
  "description": "<string>",
  "custom_instructions": "<string>",
  "is_access_controlled": true
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "description": "<string>",
  "custom_instructions": "<string>",
  "is_access_controlled": true,
  "my_access_level": "read",
  "created_at": "<string>",
  "updated_at": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.gc.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key for authentication. Format: gcai_xxxxxxxxx

Create API keys in the GC AI app under Settings → API.

Body

application/json
name
string
required

Project name (required, non-empty after trim)

Minimum string length: 1
Example:

"Vendor: Acme MSA"

description
string | null

Optional project description

custom_instructions
string | null

Optional custom instructions for chats in this project

is_access_controlled
boolean

When true (default), the project is visible only to the creator and explicitly granted users. When false, any member of the organization can see it.

Response

Project created

id
string<uuid>
required

Unique project identifier

name
string
required

Project name

description
string | null
required

Project description, or null if unset

custom_instructions
string | null
required

Custom instructions injected into chats opened in this project

is_access_controlled
boolean
required

When true, only the creator and explicitly granted users can see the project. When false, any member of the organization can see it.

my_access_level
enum<string> | null
required

Caller's access level on this project: admin (creator or explicitly granted admin), write, read, or null if the caller has no recorded grant. null is also returned for org-scoped keys, which carry no user identity.

Available options:
read,
write,
admin,
null
created_at
string
required

ISO 8601 creation timestamp

updated_at
string
required

ISO 8601 last-update timestamp