NeNe Records dev

API Reference

Base URL: https://your-host/api/v1

The full machine-readable spec is available as OpenAPI 3.x YAML.

Auth

POST
/api/v1/auth/login

Login and obtain JWT token

Entity Types

GET
/api/v1/entity-types

List all entity types

POST
/api/v1/entity-types

Create an entity type

GET
/api/v1/entity-types/{id}

Get an entity type

PUT
/api/v1/entity-types/{id}

Update an entity type

DELETE
/api/v1/entity-types/{id}

Delete an entity type

Entities (Records)

GET
/api/v1/entities

List entities (filter by type, status, locale, tags)

POST
/api/v1/entities

Create an entity

GET
/api/v1/entities/{id}

Get an entity

PUT
/api/v1/entities/{id}

Update an entity

DELETE
/api/v1/entities/{id}

Delete an entity

GET
/api/v1/entities/search

Full-text search across entities

POST
/api/v1/entities/process-scheduled

Transition scheduled → published

Field Defs

GET
/api/v1/field-defs

List field definitions

POST
/api/v1/field-defs

Create a field definition

DELETE
/api/v1/field-defs/{id}

Delete a field definition

Tags

GET
/api/v1/tags

List tags

POST
/api/v1/tags

Create a tag

DELETE
/api/v1/tags/{id}

Delete a tag

Media

POST
/api/v1/media

Upload image or file (multipart/form-data)

GET
/api/v1/media

List uploaded media

Webhooks

GET
/api/v1/webhooks

List webhooks

POST
/api/v1/webhooks

Create a webhook

DELETE
/api/v1/webhooks/{id}

Delete a webhook

Site Settings

GET
/api/v1/settings

List all settings

PUT
/api/v1/settings/{key}

Update a setting value

Public (no auth)

GET
/api/v1/public/bootstrap

Site settings + navigation for public shell

GET
/api/v1/public/entities

List published entities

GET
/api/v1/public/entities/{id}

Get published entity by ID

GET
/api/v1/public/entities/by-slug

Get published entity by slug

Dashboard & Analytics

GET
/api/v1/dashboard

Access stats + published count summary

GET
/api/v1/analytics/access

Daily access log aggregation

Export

GET
/api/v1/export/entities

Export entities as CSV or JSON

Field types

When creating field definitions, use one of these type values:

  • text — plain text string
  • int — integer
  • bool — boolean
  • enum — predefined options
  • datetime — ISO 8601 datetime
  • image — image upload (references media asset)
  • file — file upload (references media asset)
  • markdown — Markdown text body
  • relation — link to another entity

Rate limiting

120 requests per 60 seconds per IP address. When exceeded, the API returns 429 Too Many Requests with Retry-After and X-RateLimit-* headers.