Skip to main content

Documentation Index

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

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

Get credit balance


GET /account/credits

Response 200

{
  "credits_balance": 1450
}

Get credit packages


GET /account/credit-packages
Returns available top-up packages with purchase links.

Response 200

{
  "credits_balance": 1450,
  "has_subscription": true,
  "subscription_required": false,
  "packages": [
    {
      "id": "1k",
      "credits": 1000,
      "price": "$15",
      "price_cents": 1500,
      "purchase_url": "https://eversince.ai/app/subscription?buy=1k"
    },
    {
      "id": "4k",
      "credits": 4000,
      "price": "$50",
      "price_cents": 5000,
      "purchase_url": "https://eversince.ai/app/subscription?buy=4k"
    }
  ]
}

Skills

Skills are persistent instructions that shape agent behavior across all projects. Use them for brand guidelines, style rules, or domain-specific knowledge.

List skills

GET /account/skills
Returns available skills, both Eversince skills (built by Eversince) and custom skills.

Response 200

{
  "skills": [
    {
      "id": "skill-cinema",
      "name": "Cinema",
      "is_active": false,
      "source": "eversince",
      "description": "Story-driven filmmaking with shot design, camera movement, and emotional pacing.",
      "tokens": 26000
    },
    {
      "id": "skill_001",
      "name": "Brand Guidelines",
      "is_active": true,
      "source": "user",
      "tokens": 113,
      "sort_order": 0
    }
  ],
  "budget": {
    "used": 113,
    "limit": 40000
  }
}

Create a skill

POST /account/skills
ParameterTypeRequiredDescription
namestringYesSkill name. Max 100 characters.
instructionsstringYesWhat the agent should know or do. No per-skill cap. Active skills share a 40,000-token budget (roughly 160,000 characters).
is_activebooleanNoEnable immediately. Default true.

Response 201

{
  "skill": {
    "id": "skill_002",
    "name": "Brand Guidelines",
    "instructions": "Always use warm color palettes. Brand voice is confident but approachable...",
    "is_active": true,
    "source": "user",
    "characters": 450,
    "sort_order": 1,
    "created_at": "2025-03-15T10:30:00Z",
    "updated_at": "2025-03-15T10:30:00Z"
  },
  "budget": {
    "used": 113,
    "limit": 40000
  }
}

Example

curl -X POST https://eversince.ai/api/v1/account/skills \
  -H "Authorization: Bearer $EVERSINCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Brand Guidelines",
    "instructions": "Brand: Acme Corp. Colors: deep navy (#1a237e) and warm gold (#ffd54f). Voice: confident, modern, never corporate. Always end with the tagline. Product shots should emphasize materials and craftsmanship.",
    "is_active": true
  }'

Get a skill

GET /account/skills/:id
Returns full skill details including instructions.

Response 200

Custom skill:
{
  "skill": {
    "id": "skill_001",
    "name": "Brand Guidelines",
    "instructions": "Always use warm color palettes...",
    "is_active": true,
    "source": "user",
    "characters": 450,
    "sort_order": 0,
    "created_at": "2025-03-15T10:30:00Z",
    "updated_at": "2025-03-15T10:30:00Z"
  }
}
Eversince skill:
{
  "skill": {
    "id": "skill-cinema",
    "name": "Cinema",
    "is_active": false,
    "source": "eversince",
    "description": "Story-driven filmmaking with shot design, camera movement, and emotional pacing."
  }
}

Update a skill

PATCH /account/skills/:id
Update a custom skill’s name, instructions, or active state. For Eversince skills, only is_active can be toggled.
ParameterTypeDescription
namestringNew name. Max 100 characters.
instructionsstringNew instructions. No per-skill cap. Active skills share a 40,000-token budget.
is_activebooleanEnable or disable.

Response 200

Custom skill update returns the skill with updated budget:
{
  "skill": {
    "id": "skill_002",
    "name": "Updated Name",
    "instructions": "Updated instructions...",
    "is_active": true,
    "source": "user",
    "characters": 230,
    "sort_order": 1,
    "created_at": "2025-03-15T10:30:00Z",
    "updated_at": "2025-03-16T08:00:00Z"
  },
  "budget": {
    "used": 58,
    "limit": 40000
  }
}
Eversince skill toggle returns the skill without budget:
{
  "skill": {
    "id": "skill-cinema",
    "name": "Cinema",
    "is_active": true,
    "source": "eversince"
  }
}

Delete a skill

DELETE /account/skills/:id
Only custom skills can be deleted.

Response 200

{
  "deleted": true
}
Skills stack freely. Multiple skills can be active at once. Active skills (Eversince + custom) share a combined budget of 40,000 tokens. The agent receives all active skill instructions as part of its context.

Learned preferences

The agent learns your patterns across projects. Style tendencies, brand preferences, production habits. These persist across all projects.

Get preferences

GET /account/learned-preferences

Response 200

{
  "content": "Prefers warm color grading. Favors cinematic aspect ratios...",
  "enabled": true,
  "characters": 340
}

Update preferences

PUT /account/learned-preferences
ParameterTypeDescription
contentstringUpdated preferences text.
enabledbooleanEnable or disable preference learning.

Response 200

{
  "content": "Prefers warm color grading. Favors cinematic aspect ratios.",
  "enabled": true,
  "characters": 340
}

Memories

Short user-authored facts the agent reads at runtime — preferred voice, recurring brand details, audience, anything you want carried across all projects. Lighter-weight than skills: use memories for one-line facts, skills for full instructions. Active memories share a 10,000-character budget.

List memories

GET /account/memories

Response 200

{
  "memories": [
    {
      "id": "mem_001",
      "title": "Preferred voiceover",
      "body": "Use Adam (warm, mid-tempo) for all narration unless asked otherwise.",
      "is_active": true,
      "sort_order": 0,
      "characters": 67,
      "created_at": "2026-03-15T10:30:00Z",
      "updated_at": "2026-03-15T10:30:00Z"
    }
  ],
  "budget": {
    "used": 67,
    "limit": 10000
  }
}

Create a memory

POST /account/memories
ParameterTypeRequiredDescription
titlestringYesShort label. Max 100 characters.
bodystringYesMemory content. Up to 10,000 characters. Active memories share a 10,000-char total budget.
is_activebooleanNoEnable immediately. Default true.
If is_active is true and the new body would push active memories past 10,000 chars, the request returns 400.

Response 201

{
  "memory": {
    "id": "mem_002",
    "title": "Audience",
    "body": "Indie film festivals and creative directors at boutique agencies.",
    "is_active": true,
    "sort_order": 1,
    "characters": 64,
    "created_at": "2026-03-15T10:35:00Z",
    "updated_at": "2026-03-15T10:35:00Z"
  },
  "budget": {
    "used": 131,
    "limit": 10000
  }
}

Example

curl -X POST https://eversince.ai/api/v1/account/memories \
  -H "Authorization: Bearer $EVERSINCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Preferred voiceover",
    "body": "Use Adam (warm, mid-tempo) for all narration unless asked otherwise."
  }'

Get a memory

GET /account/memories/:id

Response 200

{
  "memory": {
    "id": "mem_001",
    "title": "Preferred voiceover",
    "body": "Use Adam (warm, mid-tempo) for all narration unless asked otherwise.",
    "is_active": true,
    "sort_order": 0,
    "characters": 67,
    "created_at": "2026-03-15T10:30:00Z",
    "updated_at": "2026-03-15T10:30:00Z"
  }
}

Update a memory

PATCH /account/memories/:id
Provide at least one of title, body, is_active. Activating a memory that would push active memories past the 10,000-char budget returns 400.
ParameterTypeDescription
titlestringNew title. Max 100 characters.
bodystringNew body. Max 10,000 characters.
is_activebooleanToggle on or off.

Response 200

{
  "memory": {
    "id": "mem_001",
    "title": "Preferred voiceover",
    "body": "Use Adam (warm, mid-tempo). Slow pacing for product shots.",
    "is_active": true,
    "sort_order": 0,
    "characters": 58,
    "created_at": "2026-03-15T10:30:00Z",
    "updated_at": "2026-03-15T11:00:00Z"
  },
  "budget": {
    "used": 122,
    "limit": 10000
  }
}

Delete a memory

DELETE /account/memories/:id

Response 200

{
  "deleted": true
}

API keys

Create a key

POST /keys
ParameterTypeRequiredDescription
namestringYesDescriptive name. Max 100 characters.

Response 201

{
  "id": "key_001",
  "name": "Production",
  "key": "es_live_a1b2c3d4e5f6...",
  "key_prefix": "es_live_a1b2",
  "created_at": "2025-03-15T10:30:00Z",
  "message": "Store this key securely. It will not be shown again."
}
The full key is only returned once at creation. Store it securely.

List keys

GET /keys
Returns keys with prefix only (for identification).

Response 200

{
  "keys": [
    {
      "id": "key_001",
      "name": "Production",
      "key_prefix": "es_live_a1b2",
      "last_used_at": "2025-03-20T14:00:00Z",
      "created_at": "2025-03-15T10:30:00Z"
    }
  ]
}

Revoke a key

DELETE /keys/:id
Immediately invalidates the key. Max 10 keys per account.

Response 200

{
  "id": "key_001",
  "revoked": true
}

List shares

GET /account/shares
ParameterTypeDefaultDescription
limitinteger10Results per page. 1–50.
offsetinteger0Pagination offset.

Response 200

{
  "shares": [
    {
      "share_url": "https://eversince.ai/share/abc123",
      "video_url": "https://...",
      "title": "My Project",
      "aspect_ratio": "16:9",
      "view_count": 42,
      "created_at": "2025-03-15T10:30:00Z"
    }
  ],
  "total": 3,
  "total_views": 156,
  "has_more": false
}

Submit feedback

POST /feedback
Report bugs or suggest improvements.
ParameterTypeRequiredDescription
typestringYesbug, suggestion, or question.
messagestringYesYour feedback. Max 5,000 characters.
project_idstringNoRelated project ID.

Response 201

{
  "received": true
}