Se ha lanzado la versión 1.1.2

REST API para M&S CRM

API REST sobre HTTPS con JSON. Métodos HTTP y códigos de estado estándar. Token por instalación.

Introducción

La API de M&S opera sobre HTTPS y utiliza JSON como formato de datos. Es una API RESTful y emplea métodos y códigos de estado HTTP para expresar solicitudes y respuestas. Un token se vincula a una instalación completa de M&S. Para interactuar con otra instalación diferente, debes crear un token en esa instalación.

Autenticación

Usa el authtoken en el encabezado de cada solicitud.

Header: authtoken: TU_TOKEN

Para operaciones POST/PUT se utiliza multipart/form-data.

Ejemplo de uso

Escenario: Con token jEheVytlAoFl7F8MqUQ7jAo2hOXAS, listar tickets:

curl -H "authtoken: jEheVytlAoFl7F8MqUQ7jAo2hOXAS" \
"https://crm.myscreators.com/index.php/api/tickets"

Crear cliente

post

Crea un cliente nuevo. (En tu doc se muestra respuesta “Client add successful.”)

Autorizaciones
authtokenstringRequerido
Cuerpo
company_namestringRequerido
addressstringOpcional
phonestringOpcional
websitestringOpcional
Respuestas
post
/clients
POST /index.php/api/clients HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 72

{
  "company_name": "text",
  "address": "text",
  "phone": "text",
  "website": "text"
}
200

Client add successful

{
  "status": true,
  "message": "Operation successful."
}

Obtener cliente por ID

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Respuestas
get
/clients/{id}
GET /index.php/api/clients/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Cliente

{
  "id": 2,
  "company_name": "jdoe",
  "address": "Rajkot",
  "created_date": "2025-12-06",
  "is_lead": "0",
  "lead_status_id": "1",
  "owner_id": "1",
  "primary_contact": "john doe",
  "total_projects": "7"
}

Eliminar cliente

delete
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Respuestas
delete
/clients/{id}
DELETE /index.php/api/clients/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Eliminado

{
  "status": true,
  "message": "Operation successful."
}

Buscar clientes

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
keysearchstringRequerido
Respuestas
get
/getClientsSearch/search/{keysearch}
GET /index.php/api/getClientsSearch/search/{keysearch} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Coincidencias de clientes

[
  {
    "id": 1,
    "company_name": "text",
    "invoice_value": "text",
    "client_groups": "text"
  }
]

Crear lead

post
Autorizaciones
authtokenstringRequerido
Cuerpo
company_namestringRequerido
owner_idstringRequerido
lead_status_idstringRequerido
lead_source_idstringRequerido
addressstringOpcional
citystringOpcional
statestringOpcional
zipstringOpcional
countrystringOpcional
phonestringOpcional
websitestringOpcional
vat_numberstringOpcional
Respuestas
post
/leads
POST /index.php/api/leads HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 217

{
  "company_name": "text",
  "owner_id": "text",
  "lead_status_id": "text",
  "lead_source_id": "text",
  "address": "text",
  "city": "text",
  "state": "text",
  "zip": "text",
  "country": "text",
  "phone": "text",
  "website": "text",
  "vat_number": "text"
}
200

Creado

{
  "status": true,
  "message": "Operation successful."
}

Obtener lead por ID

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Respuestas
get
/leads/{id}
GET /index.php/api/leads/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Lead

{
  "id": 2,
  "company_name": "Test",
  "address": "text",
  "city": "text",
  "state": "text",
  "zip": "text",
  "country": "text",
  "created_date": "2025-12-06",
  "website": "text",
  "phone": "text",
  "lead_status_title": "New",
  "owner_name": "john doe"
}

Actualizar lead

put
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Cuerpo
all ofOpcional
Respuestas
put
/leads/{id}
PUT /index.php/api/leads/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 217

{
  "company_name": "text",
  "owner_id": "text",
  "lead_status_id": "text",
  "lead_source_id": "text",
  "address": "text",
  "city": "text",
  "state": "text",
  "zip": "text",
  "country": "text",
  "phone": "text",
  "website": "text",
  "vat_number": "text"
}
200

Actualizado

{
  "status": true,
  "message": "Operation successful."
}

Buscar leads

get

Si tu instalación no ofrece esta ruta, usa /projects/search/{keysearch} según la nota del doc.

Autorizaciones
authtokenstringRequerido
Parámetros de ruta
keysearchstringRequerido
Respuestas
get
/leads/search/{keysearch}
GET /index.php/api/leads/search/{keysearch} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Coincidencias de leads

[
  {
    "id": 1,
    "company_name": "text",
    "lead_status_title": "text"
  }
]

Listar proyectos

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/projects/
GET /index.php/api/projects/ HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Proyectos

[
  {
    "id": 2,
    "title": "project 1",
    "description": "text",
    "start_date": "text",
    "deadline": "text",
    "client_id": "2",
    "status": "open",
    "company_name": "jdoe",
    "currency_symbol": "INR"
  }
]

Crear proyecto

post
Autorizaciones
authtokenstringRequerido
Cuerpo
titlestringRequerido
client_idstringRequerido
start_datestringRequerido
descriptionstringOpcional
Respuestas
post
/projects
POST /index.php/api/projects HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 76

{
  "title": "text",
  "client_id": "text",
  "start_date": "text",
  "description": "text"
}
200

Creado

{
  "status": true,
  "message": "Operation successful."
}

Actualizar proyecto

put
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Cuerpo
all ofOpcional
Respuestas
put
/projects/{id}
PUT /index.php/api/projects/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 76

{
  "title": "text",
  "client_id": "text",
  "start_date": "text",
  "description": "text"
}
200

Actualizado

{
  "status": true,
  "message": "Operation successful."
}

Eliminar proyecto

delete
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Respuestas
delete
/projects/{id}
DELETE /index.php/api/projects/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Eliminado

{
  "status": true,
  "message": "Operation successful."
}

Buscar proyectos

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
keysearchstringRequerido
Respuestas
get
/projects/search/{keysearch}
GET /index.php/api/projects/search/{keysearch} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Coincidencias de proyectos

[
  {
    "id": 1,
    "title": "text",
    "status": "text"
  }
]

Listar tickets

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/tickets
GET /index.php/api/tickets HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Tickets

[
  {
    "id": 1,
    "client_id": "2",
    "project_id": "0",
    "ticket_type_id": "1",
    "title": "Title",
    "created_by": "1",
    "requested_by": "4",
    "created_at": "2021-09-12 06:47:36",
    "status": "new",
    "last_activity_at": "2021-09-12 06:47:36",
    "assigned_to": "3",
    "labels": "9,10",
    "ticket_type": "General Support",
    "company_name": "Company",
    "assigned_to_user": "john doe"
  }
]

Crear ticket

post
Autorizaciones
authtokenstringRequerido
Cuerpo
titlestringRequerido
client_idstringRequerido
requested_by_idstringRequerido
ticket_type_idstringRequerido
descriptionstringRequerido
assigned_tostringRequerido
ticket_labelsstringOpcional

Opcional (IDs separados por coma)

Respuestas
post
/tickets
POST /index.php/api/tickets HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 149

{
  "title": "text",
  "client_id": "text",
  "requested_by_id": "text",
  "ticket_type_id": "text",
  "description": "text",
  "assigned_to": "text",
  "ticket_labels": "text"
}
200

Creado

{
  "status": true,
  "message": "Operation successful."
}

Obtener ticket por ID

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Respuestas
get
/tickets/{id}
GET /index.php/api/tickets/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Ticket

{
  "id": 1,
  "client_id": "2",
  "project_id": "0",
  "ticket_type_id": "1",
  "title": "Title",
  "created_by": "1",
  "requested_by": "4",
  "created_at": "2021-09-12 06:47:36",
  "status": "new",
  "last_activity_at": "2021-09-12 06:47:36",
  "assigned_to": "3",
  "labels": "9,10",
  "ticket_type": "General Support",
  "company_name": "Company",
  "assigned_to_user": "john doe"
}

Actualizar ticket

put
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Cuerpo
all ofOpcional
Respuestas
put
/tickets/{id}
PUT /index.php/api/tickets/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 149

{
  "title": "text",
  "client_id": "text",
  "requested_by_id": "text",
  "ticket_type_id": "text",
  "description": "text",
  "assigned_to": "text",
  "ticket_labels": "text"
}
200

Actualizado

{
  "status": true,
  "message": "Operation successful."
}

Eliminar ticket

delete
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
idintegerRequerido
Respuestas
delete
/tickets/{id}
DELETE /index.php/api/tickets/{id} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Eliminado

{
  "status": true,
  "message": "Operation successful."
}

Buscar tickets

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
keysearchstringRequerido
Respuestas
get
/tickets/search/{keysearch}
GET /index.php/api/tickets/search/{keysearch} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Coincidencias de tickets

[
  {
    "id": 1,
    "title": "text",
    "status": "text"
  }
]

Crear factura

post
Autorizaciones
authtokenstringRequerido
Cuerpo
invoice_due_datestringRequerido
invoice_client_idstringRequerido
invoice_bill_datestringOpcional
invoice_project_idstringOpcional
tax_idstringOpcional
tax_id2stringOpcional
tax_id3stringOpcional
recurringstringOpcional
invoice_notestringOpcional
Respuestas
post
/invoices
POST /index.php/api/invoices HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 200

{
  "invoice_due_date": "text",
  "invoice_client_id": "text",
  "invoice_bill_date": "text",
  "invoice_project_id": "text",
  "tax_id": "text",
  "tax_id2": "text",
  "tax_id3": "text",
  "recurring": "text",
  "invoice_note": "text"
}
200

Creado

{
  "status": true,
  "message": "Operation successful."
}

Buscar facturas

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
keysearchstringRequerido
Respuestas
get
/invoices/search/{keysearch}
GET /index.php/api/invoices/search/{keysearch} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Coincidencias de facturas

[
  {
    "id": 1,
    "client_id": "text",
    "status": "text"
  }
]

Listar grupos de clientes

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/client_groups
GET /index.php/api/client_groups HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Grupos de clientes

[
  {
    "id": "1",
    "title": "Test c group",
    "deleted": "0"
  }
]

Listar etiquetas de facturas

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/invoice_labels
GET /index.php/api/invoice_labels HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Etiquetas de factura

[
  {
    "id": "text",
    "title": "text",
    "color": "text",
    "context": "text",
    "deleted": "text"
  }
]

Listar impuestos de factura

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/invoice_tax
GET /index.php/api/invoice_tax HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Impuestos configurados

[
  {
    "id": "1",
    "title": "Tax (10%)",
    "percentage": "10",
    "deleted": "0"
  }
]

Listar etiquetas de proyecto

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/project_labels
GET /index.php/api/project_labels HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Etiquetas de proyecto

[
  {
    "id": "text",
    "title": "text",
    "color": "text",
    "context": "text",
    "deleted": "text"
  }
]

Listar miembros de proyecto

get
Autorizaciones
authtokenstringRequerido
Respuestas
get
/getProjectMembers
GET /index.php/api/getProjectMembers HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Miembros de proyecto

[
  {
    "id": "6",
    "user_id": "1",
    "project_id": "1",
    "is_leader": "1",
    "member_name": "Fname Lname",
    "user_type": "staff"
  }
]

Listar contactos por ClientID

get
Autorizaciones
authtokenstringRequerido
Parámetros de ruta
clientidintegerRequerido
Respuestas
get
/contact_by_clientid/{clientid}
GET /index.php/api/contact_by_clientid/{clientid} HTTP/1.1
Host: crm.myscreators.com
authtoken: YOUR_API_KEY
Accept: */*
200

Contactos del cliente

[
  {
    "id": "6",
    "first_name": "Fname",
    "last_name": "Lname",
    "user_type": "client",
    "status": "active",
    "client_id": "3"
  }
]

Última actualización