API Documentation

Integrate AI-powered APA citation parsing into your application.

Base URL

https://apacitationgenerator.site/api

Authentication

Free tier requests don't require authentication. For Pro tier access, include your API key in the header:

X-API-Key: your-api-key-here

Pro subscribers receive an API key via email after subscribing.

Rate Limits

Tier Limit Reset
Free 10 requests/day Midnight UTC
Pro 1,000 requests/day Midnight UTC

Endpoints

POST /parse

Parse text to extract citation information using AI.

Request Body

{
  "text": "Smith, J. A. (2024). The future of AI. Nature, 123(4), 56-78.",
  "url": "https://example.com/article",  // optional
  "title": "Page Title",                 // optional
  "model": "gpt-4o-mini"                 // Pro only
}

Response

{
  "success": true,
  "parsed": {
    "sourceType": "journal",
    "authors": [
      {"firstName": "John", "middleName": "A", "lastName": "Smith"}
    ],
    "title": "The future of AI",
    "year": "2024",
    "journal": "Nature",
    "volume": "123",
    "issue": "4",
    "pages": "56-78"
  },
  "model": "llama-3.1-8b-instant",
  "tier": "free",
  "remaining": 9,
  "reset": 1702339200
}

Available Models (Pro)

  • gpt-4o-mini - OpenAI GPT-4o Mini
  • claude-3-haiku-20240307 - Anthropic Claude 3 Haiku
  • llama-3.3-70b-versatile - Groq Llama 3.3 70B
GET /usage

Check your current usage and remaining quota.

Response

{
  "tier": "free",
  "limit": 10,
  "used": 3,
  "remaining": 7,
  "reset": 1702339200
}

Error Codes

Code Description
400 Bad Request - Missing required field
429 Rate Limit Exceeded - Daily quota reached
500 Internal Error - AI parsing failed

Example (JavaScript)

const response = await fetch('https://apacitationgenerator.site/api/parse', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    // 'X-API-Key': 'your-api-key'  // Pro users only
  },
  body: JSON.stringify({
    text: 'Smith, J. A. (2024). The future of AI. Nature, 123(4), 56-78.',
    url: 'https://nature.com/articles/example'
  })
});

const data = await response.json();
console.log(data.parsed);
// { sourceType: 'journal', authors: [...], title: '...', ... }

Ready to integrate?

Start with 10 free requests per day, no API key needed.

View Pricing